home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / win-fort.zip / WINDOWS.FI < prev    next >
Text File  |  1991-11-12  |  83KB  |  2,651 lines

  1. C
  2. C  WINDOWS.FI -
  3. C
  4. C Author       : Kevin B Black
  5. C Date written : 12 Oct 1991
  6. C Abstract     :
  7. C
  8. C INCLUDE FILE FOR FORTRAN WINDOWS 3.0 APPLICATIONS
  9. C
  10. C KERNEL Section
  11. C
  12. $IF DEFINED(KERNEL)
  13. C
  14. C Loader Routines
  15. C
  16.       INTERFACE TO FUNCTION GetVersion[PASCAL,FAR] ()
  17.      INTEGER*2 GetVersion
  18.       END
  19.       INTERFACE TO FUNCTION GetNumTasks[PASCAL,FAR] ()
  20.      INTEGER*2 GetNumTasks
  21.       END
  22.       INTERFACE TO FUNCTION GetCodeHandle[PASCAL,FAR] (FP)
  23.      INTEGER*2 GetCodeHandle
  24.      EXTERNAL FP [REFERENCE,FAR]
  25.       END
  26.       INTERFACE TO SUBROUTINE GetCodeInfo[PASCAL,FAR] (LPPROC,LPSEGINFO)
  27.      EXTERNAL LPPROC [REFERENCE,FAR]
  28.      EXTERNAL LPSEGINFO [REFERENCE,FAR] ! NOTE SURE ABOUT THIS ONE
  29.       END
  30.       INTERFACE TO FUNCTION GetModuleHandle[PASCAL,FAR] (LS)
  31.      INTEGER*2 GetModuleHandle
  32.      CHARACTER*(*) LS [REFERENCE,FAR]
  33.       END
  34.       INTERFACE TO FUNCTION GetModuleUsage[PASCAL,FAR] (H)
  35.      INTEGER*2 GetModuleUsage,H
  36.       END
  37.       INTERFACE TO FUNCTION GetModuleFileName[PASCAL,FAR] (H,LS,I)
  38.      INTEGER*2 GetModuleFileName,H,I
  39.      CHARACTER*(*) LS [REFERENCE,FAR]
  40.       END
  41.       INTERFACE TO FUNCTION GetInstanceData[PASCAL,FAR] (H,NPSTR,I)
  42.      INTEGER*2 GetInstanceData,H,I
  43.      CHARACTER*(*) NPSTR [REFERENCE,FAR]
  44.       END
  45.       INTERFACE TO FUNCTION GetProcAddress[PASCAL,FAR] (H,LS)
  46.      INTEGER*4 GetProcAddress
  47.      INTEGER*2 H
  48.      CHARACTER*(*) LS [REFERENCE,FAR]
  49.       END
  50.       INTERFACE TO FUNCTION MakeProcInstance[PASCAL,FAR] (FP,H)
  51.      INTEGER*4 MakeProcInstance
  52.      EXTERNAL FP [REFERENCE,FAR]
  53.      INTEGER*2 H
  54.       END
  55.       INTERFACE TO SUBROUTINE FreeProcInstance[PASCAL,FAR] (FP)
  56.      INTEGER*4 FP [FAR]
  57.       END
  58.       INTERFACE TO FUNCTION LoadLibrary[PASCAL,FAR] (LS)
  59.      INTEGER*2 LoadLibrary
  60.      CHARACTER*(*) LS [REFERENCE,FAR]
  61.       END
  62.       INTERFACE TO FUNCTION LoadModule[PASCAL,FAR] (LS,LPVOID)
  63.      INTEGER*2 LoadModule
  64.      CHARACTER*(*) LS [REFERENCE,FAR]
  65.      EXTERNAL LPVOID [REFERENCE,FAR] ! NOT SURE ABOUT THIS ONE
  66.       END
  67.       INTERFACE TO FUNCTION FreeModule[PASCAL,FAR] (H)
  68.      INTEGER*2 FreeModule,H
  69.       END
  70.       INTERFACE TO SUBROUTINE FreeLibrary[PASCAL,FAR] (H)
  71.      INTEGER*2 H
  72.       END
  73.       INTERFACE TO FUNCTION GetFreeSpace[PASCAL,FAR] (I)
  74.      INTEGER*4 GetFreeSpace
  75.      INTEGER*2 I
  76.       END
  77.       INTERFACE TO FUNCTION WinExec[PASCAL,FAR] (LS,I)
  78.      INTEGER*2 WinExec
  79.      CHARACTER*(*) LS [REFERENCE,FAR]
  80.      INTEGER*2 I
  81.       END
  82.       INTERFACE TO SUBROUTINE DebugBreak[PASCAL,FAR]
  83.       END
  84.       INTERFACE TO SUBROUTINE OutputDebugString[PASCAL,FAR] (LS)
  85.      CHARACTER*(*) LS [REFERENCE,FAR]
  86.       END
  87.       INTERFACE TO SUBROUTINE SwitchStackBack[PASCAL,FAR]
  88.       END
  89.       INTERFACE TO SUBROUTINE SwitchStackTo(I,J,K)
  90.      INTEGER*2 I,J,K
  91.       END
  92.       INTERFACE TO FUNCTION GetCurrentPDB[PASCAL,FAR] ()
  93.      INTEGER*2 GetCurrentPDB
  94.       END
  95.  
  96. $IF DEFINED(OPENFILE)
  97. C
  98. C OpenFile()
  99. C
  100.       INTERFACE TO FUNCTION OpenFile[PASCAL,FAR] (LS,LOPFS,I)
  101.      INTEGER*2 OpenFile
  102.      CHARACTER*(*) LS [REFERENCE,FAR]
  103.      STRUCTURE /OPFS/
  104.         INTEGER*2 X(68)
  105.      END STRUCTURE
  106.      RECORD /OPFS/ LOPFS [REFERENCE,FAR]
  107.      INTEGER*2 I
  108.       END
  109. C
  110. C GetTempFileName()
  111. C
  112.       INTERFACE TO FUNCTION GetTempDrive[PASCAL,FAR] (BYTE)
  113.      BYTE GetTempDrive,BYTE
  114.       END
  115.       INTERFACE TO FUNCTION GetTempFileName[PASCAL,FAR] (BYTE,LS1,I,LS2)
  116.      INTEGER*2 GetTempFileName
  117.      BYTE BYTE
  118.      CHARACTER*(*) LS1 [REFERENCE,FAR]
  119.      INTEGER*2 I
  120.      CHARACTER*(*) LS2 [REFERENCE,FAR]
  121.       END
  122.       INTERFACE TO FUNCTION SetHandleCount[REFERENCE,FAR] (I)
  123.      INTEGER*2 SetHandleCount,I
  124.       END
  125.       INTERFACE TO FUNCTION GetDriveType(I)
  126.      INTEGER*2 GetDriveType,I
  127.       END
  128. $ENDIF ! NOOPENFILE
  129.  
  130. $IF DEFINED(MEMMGR)
  131.       INTERFACE TO FUNCTION GlobalAlloc[PASCAL,FAR] (I,J)
  132.      INTEGER*2 GlobalAlloc,I
  133.      INTEGER*4 J
  134.       END
  135.       INTERFACE TO FUNCTION GlobalCompact[PASCAL,FAR] (I)
  136.      INTEGER*4 GlobalCompact,I
  137.       END
  138.       INTERFACE TO FUNCTION GlobalDiscard(H)
  139.          INTEGER*2 GlobalDiscard,H
  140.       END
  141.       INTERFACE TO SUBROUTINE GlobalFix[PASCAL,FAR] (H)
  142.      INTEGER*2 H
  143.       END
  144.       INTERFACE TO FUNCTION GlobalFlags[PASCAL,FAR] (H)
  145.      INTEGER*2 GlobalFlags,H
  146.       END
  147.       INTERFACE TO FUNCTION GlobalFree[PASCAL,FAR] (H)
  148.      INTEGER*2 GlobalFree,H
  149.       END
  150.       INTERFACE TO FUNCTION GlobalHandle[PASCAL,FAR] (I)
  151.      INTEGER*4 GlobalHandle
  152.      INTEGER*2 I
  153.       END
  154.       INTERFACE TO FUNCTION GlobalLock[PASCAL,FAR] (H)
  155.      CHARACTER*(*) GlobalLock ! NOT SURE ABOUT THIS ONE
  156.      INTEGER*2 H
  157.       END
  158.       INTERFACE TO FUNCTION GlobalLRUNewest[PASCAL,FAR] (H)
  159.      INTEGER*2 GlobalLRUNewest,H
  160.       END
  161.       INTERFACE TO FUNCTION GlobalLRUOldest[PASCAL,FAR] (H)
  162.      INTEGER*2 GlobalLRUOldest,H
  163.       END
  164.       INTERFACE TO SUBROUTINE GlobalNotify[PASCAL,FAR] (FP)
  165.      EXTERNAL FP [REFERENCE,FAR]
  166.       END
  167.       INTERFACE TO FUNCTION GlobalPageLock[PASCAL,FAR] (H)
  168.      INTEGER*2 GlobalPageLock,H
  169.       END
  170.       INTERFACE TO FUNCTION GlobalPageUnlock[PASCAL,FAR] (H)
  171.       INTEGER*2 GlobalPageUnlock,H
  172.       END
  173.       INTERFACE TO FUNCTION GlobalReAlloc[PASCAL,FAR] (H,I,J)
  174.      INTEGER*2 GlobalReAlloc,H,J
  175.      INTEGER*4 I
  176.       END
  177.       INTERFACE TO FUNCTION GlobalSize[PASCAL,FAR] (H)
  178.      INTEGER*2 GlobalSize,H
  179.       END
  180.       INTERFACE TO FUNCTION GlobalUnfix[PASCAL,FAR] (H)
  181.      INTEGER*2 GlobalUnfix,H
  182.       END
  183.       INTERFACE TO FUNCTION GlobalUnlock[PASCAL,FAR] (H)
  184.      INTEGER*2 GlobalUnlock,H
  185.       END
  186.       INTERFACE TO FUNCTION GlobalUnWire[PASCAL,FAR] (H)
  187.      INTEGER*2 GlobalUnWire,H
  188.       END
  189.       INTERFACE TO FUNCTION GlobalWire[PASCAL,FAR] (H)
  190.      INTEGER*4 GlobalWire ! NOTE SURE ABOUT THIS ONE
  191.      INTEGER*2 H
  192.       END
  193.       INTERFACE TO FUNCTION LockData()
  194.          INTEGER*2 LockData
  195.       END
  196.       INTERFACE TO FUNCTION UnlockData()
  197.          INTEGER*2 UnlockData
  198.       END
  199.       INTERFACE TO FUNCTION LockSegment[PASCAL,FAR] (I)
  200.      INTEGER*2 LockSegment,I
  201.       END
  202.       INTERFACE TO FUNCTION UnlockSegment[PASCAL,FAR] (I)
  203.      INTEGER*2 UnlockSegment,I
  204.       END
  205.       INTERFACE TO FUNCTION LocalAlloc[PASCAL,FAR] (I,J)
  206.      INTEGER*2 LocalAlloc,I,J
  207.       END
  208.       INTERFACE TO FUNCTION LocalCompact[PASCAL,FAR] (I)
  209.      INTEGER*2 LocalCompact,I
  210.       END
  211.       INTERFACE TO FUNCTION LocalDiscard(H)
  212.          INTEGER*2 LocalDiscard,H
  213.       END
  214.       INTERFACE TO FUNCTION LocalFlags[PASCAL,FAR] (H)
  215.      INTEGER*2 LocalFlags,H
  216.       END
  217.       INTERFACE TO FUNCTION LocalFree[PASCAL,FAR] (H)
  218.      INTEGER*2 LocalFree,H
  219.       END
  220.       INTERFACE TO FUNCTION LocalHandle[PASCAL,FAR] (I)
  221.      INTEGER*2 LocalHandle,I
  222.       END
  223.       INTERFACE TO FUNCTION LocalInit[PASCAL,FAR] (I,J,K)
  224.      INTEGER*2 LocalInit,I,J,K
  225.       END
  226.       INTERFACE TO FUNCTION LocalLock[PASCAL,FAR] (H)
  227.      INTEGER*4 LocalLock ! NOTE SURE ABOUT THIS ONE
  228.      INTEGER*2 H
  229.       END
  230.       INTERFACE TO FUNCTION LocalNotify[PASCAL,FAR] (FP)
  231.      INTEGER*4 LocalNotify ! NOT TOO SURE ABOUT THIS ONE
  232.      EXTERNAL FP [REFERENCE,FAR]
  233.       END
  234.       INTERFACE TO FUNCTION LocalReAlloc[PASCAL,FAR] (H,I,J)
  235.      INTEGER*2 LocalReAlloc,H,I,J
  236.       END
  237.       INTERFACE TO FUNCTION LocalShrink[PASCAL,FAR] (H,I)
  238.      INTEGER*2 LocalShrink,H,I
  239.       END
  240.       INTERFACE TO FUNCTION LocalSize[PASCAL,FAR] (H)
  241.      INTEGER*2 LocalSize,H
  242.       END
  243.       INTERFACE TO FUNCTION LocalUnlock[PASCAL,FAR] (H)
  244.      INTEGER*2 LocalUnlock,H
  245.       END
  246. $ENDIF ! NOMEMMGR
  247.  
  248.       INTERFACE TO FUNCTION SetSwapAreaSize[PASCAL,FAR] (I)
  249.      INTEGER*4 SetSwapAreaSize
  250.      INTEGER*2 I
  251.       END
  252.       INTERFACE TO FUNCTION ValidateFreeSpaces[PASCAL,FAR] ()
  253.      INTEGER*4 ValidateFreeSpaces ! ?
  254.       END
  255.       INTERFACE TO SUBROUTINE LimitEmsPages[PASCAL,FAR] (I)
  256.      INTEGER*4 I
  257.       END
  258.       INTERFACE TO FUNCTION SetErrorMode[PASCAL,FAR] (I)
  259.      INTEGER*2 SetErrorMode,I
  260.       END
  261.       INTERFACE TO SUBROUTINE ValidateCodeSegments[PASCAL,FAR]
  262.       END
  263.       INTERFACE TO FUNCTION GetDOSEnvironment[PASCAL,FAR] ()
  264.      INTEGER*4 GetDOSEnvironment ! ?
  265.       END
  266.       INTERFACE TO FUNCTION AllocDStoCSAlias[PASCAL,FAR] (I)
  267.      INTEGER*2 AllocDStoCSAlias,I
  268.       END
  269.       INTERFACE TO FUNCTION AllocSelector[PASCAL,FAR] (I)
  270.      INTEGER*2 AllocSelector,I
  271.       END
  272.       INTERFACE TO FUNCTION ChangeSelector[PASCAL,FAR] (I,J)
  273.      INTEGER*2 ChangeSelector,I,J
  274.       END
  275.       INTERFACE TO FUNCTION FreeSelector[PASCAL,FAR] (I)
  276.      INTEGER*2 FreeSelector,I
  277.       END
  278.       INTERFACE TO FUNCTION UnlockResource[PASCAL,FAR,
  279.      *                                         ALIAS:"GLOBALUNLOCK"] (H)
  280.      INTEGER*2 UnlockResource,H
  281.       END
  282.       INTERFACE TO FUNCTION FindResource[PASCAL,FAR] (H,LS1,LS2)
  283.      INTEGER*2 FindResource,H
  284.      CHARACTER*(*) LS1 [REFERENCE,FAR]
  285.      CHARACTER*(*) LS2 [REFERENCE,FAR]
  286.       END
  287.       INTERFACE TO FUNCTION LoadResource[PASCAL,FAR] (H1,H2)
  288.      INTEGER*2 LoadResource,H1,H2
  289.       END
  290.       INTERFACE TO FUNCTION FreeResource[PASCAL,FAR] (H)
  291.      INTEGER*2 FreeResource,H
  292.       END
  293.       INTERFACE TO FUNCTION LockResource[PASCAL,FAR] (H)
  294.      INTEGER*4 LockResource ! ?
  295.      INTEGER*2 H
  296.       END
  297.       INTERFACE TO FUNCTION SetResourceHandler[PASCAL,FAR] (H,LS,FP)
  298.      INTEGER*4 SetResourceHandler
  299.      INTEGER*2 H
  300.      CHARACTER*(*) LS [REFERENCE,FAR]
  301.      EXTERNAL FP [REFERENCE,FAR]
  302.       END
  303.       INTERFACE TO FUNCTION AllocResource[PASCAL,FAR] (H1,H2,I)
  304.      INTEGER*2 AllocResource,H1,H2
  305.      INTEGER*4 I
  306.       END
  307.       INTERFACE TO FUNCTION SizeofResource[PASCAL,FAR] (H1,H2)
  308.      INTEGER*2 SizeofResource,H1,H2
  309.       END
  310.       INTERFACE TO FUNCTION AccessResource[PASCAL,FAR] (H1,H2)
  311.      INTEGER*2 AccessResource,H1,H2
  312.       END
  313.       INTERFACE TO SUBROUTINE Yield[PASCAL,FAR]
  314.       END
  315.       INTERFACE TO FUNCTION GetCurrentTask[PASCAL,FAR] ()
  316.      INTEGER*2 GetCurrentTask
  317.       END
  318.  
  319. $IF DEFINED(ATOM)
  320.  
  321.       INTERFACE TO FUNCTION InitAtomTable[PASCAL,FAR] (I)
  322.      INTEGER*2 InitAtomTable,I
  323.       END
  324.       INTERFACE TO FUNCTION AddAtom[PASCAL,FAR] (LS)
  325.      INTEGER*2 AddAtom
  326.      CHARACTER*(*) LS [REFERENCE,FAR]
  327.       END
  328.       INTERFACE TO FUNCTION DeleteAtom[PASCAL,FAR] (ATOM)
  329.      INTEGER*2 DeleteAtom,ATOM
  330.       END
  331.       INTERFACE TO FUNCTION FindAtom[PASCAL,FAR] (LS)
  332.      INTEGER*2 FindAtom
  333.      CHARACTER*(*) LS [REFERENCE,FAR]
  334.       END
  335.       INTERFACE TO FUNCTION GetAtomName[PASCAL,FAR] (ATOM,LS,I)
  336.      INTEGER*2 GetAtomName,ATOM,I
  337.      CHARACTER*(*) LS [REFERENCE,FAR]
  338.       END
  339.       INTERFACE TO FUNCTION GlobalAddAtom[PASCAL,FAR] (LS)
  340.      INTEGER*2 GlobalAddAtom
  341.      CHARACTER*(*) LS [REFERENCE,FAR]
  342.       END
  343.       INTERFACE TO FUNCTION GlobalDeleteAtom[PASCAL,FAR] (ATOM)
  344.      INTEGER*2 GlobalDeleteAtom,ATOM
  345.       END
  346.       INTERFACE TO FUNCTION GlobalFindAtom[PASCAL,FAR] (LS)
  347.      INTEGER*2 GlobalFindAtom
  348.      CHARACTER*(*) LS [REFERENCE,FAR]
  349.       END
  350.       INTERFACE TO FUNCTION GlobalGetAtomName[PASCAL,FAR] (ATOM,LS,I)
  351.      INTEGER*2 GlobalGetAtomName,ATOM,I
  352.      CHARACTER*(*) LS [REFERENCE,FAR]
  353.       END
  354.       INTERFACE TO FUNCTION GetAtomHandle[PASCAL,FAR] (ATOM)
  355.      INTEGER*2 GetAtomHandle,ATOM
  356.       END
  357.  
  358. $ENDIF ! NOATOM
  359. C
  360. C User Profile Routines
  361. C
  362.       INTERFACE TO FUNCTION GetProfileInt[PASCAL,FAR] (LS1,LS2,I)
  363.      INTEGER*2 GetProfileInt
  364.      CHARACTER*(*) LS1 [REFERENCE,FAR]
  365.      CHARACTER*(*) LS2 [REFERENCE,FAR]
  366.      INTEGER*2 I
  367.       END
  368.       INTERFACE TO FUNCTION GetProfileString[PASCAL,FAR]
  369.      *                                               (LS1,LS2,LS3,LS4,I)
  370.      INTEGER*2 GetProfileString
  371.      CHARACTER*(*) LS1 [REFERENCE,FAR]
  372.      CHARACTER*(*) LS2 [REFERENCE,FAR]
  373.      CHARACTER*(*) LS3 [REFERENCE,FAR]
  374.      CHARACTER*(*) LS4 [REFERENCE,FAR]
  375.      INTEGER*2 I
  376.       END
  377.       INTERFACE TO FUNCTION WriteProfileString[PASCAL,FAR] (LS1,LS2,LS3)
  378.      INTEGER*2 WriteProfileString
  379.      CHARACTER*(*) LS1 [REFERENCE,FAR]
  380.      CHARACTER*(*) LS2 [REFERENCE,FAR]
  381.      CHARACTER*(*) LS3 [REFERENCE,FAR]
  382.       END
  383.       INTERFACE TO FUNCTION GetPrivateProfileInt[PASCAL,FAR]
  384.      *                                                   (LS1,LS2,I,LS3)
  385.      INTEGER*2 GetPrivateProfileInt
  386.      CHARACTER*(*) LS1 [REFERENCE,FAR]
  387.      CHARACTER*(*) LS2 [REFERENCE,FAR]
  388.      INTEGER*2 I
  389.      CHARACTER*(*) LS3 [REFERENCE,FAR]
  390.       END
  391.       INTERFACE TO FUNCTION GetPrivateProfileString[PASCAL,FAR]
  392.      *                                           (LS1,LS2,LS3,LS4,I,LS5)
  393.      INTEGER*2 GetPrivateProfileString
  394.      CHARACTER*(*) LS1 [REFERENCE,FAR]
  395.      CHARACTER*(*) LS2 [REFERENCE,FAR]
  396.      CHARACTER*(*) LS3 [REFERENCE,FAR]
  397.      CHARACTER*(*) LS4 [REFERENCE,FAR]
  398.      INTEGER*2 I
  399.      CHARACTER*(*) LS5 [REFERENCE,FAR]
  400.       END
  401.       INTERFACE TO FUNCTION WritePrivateProfileString[PASCAL,FAR]
  402.      *                                                 (LS1,LS2,LS3,LS4)
  403.      INTEGER*2 WritePrivateProfileString
  404.      CHARACTER*(*) LS1 [REFERENCE,FAR]
  405.      CHARACTER*(*) LS2 [REFERENCE,FAR]
  406.      CHARACTER*(*) LS3 [REFERENCE,FAR]
  407.      CHARACTER*(*) LS4 [REFERENCE,FAR]
  408.       END
  409.       INTERFACE TO FUNCTION GetWindowsDirectory[PASCAL,FAR] (LS,WORD)
  410.      INTEGER*2 GetWindowsDirectory
  411.      CHARACTER*(*) LS [REFERENCE,FAR]
  412.      INTEGER*2 WORD
  413.       END
  414.       INTERFACE TO FUNCTION GetSystemDirectory[PASCAL,FAR] (LS,WORD)
  415.      INTEGER*2 GetSystemDirectory
  416.      CHARACTER*(*) LS [REFERENCE,FAR]
  417.      INTEGER*2 WORD
  418.       END
  419. C
  420. C Catch() and Throw()
  421. C
  422.       INTERFACE TO FUNCTION Catch[PASCAL,FAR] (LPCATCHBUF)
  423.      INTEGER*2 Catch
  424.      INTEGER*2 LPCATCHBUF [FAR,REFERENCE] (9)
  425.       END
  426.       INTERFACE TO SUBROUTINE Throw[PASCAL,FAR] (LPCATCHBUF,I)
  427.      INTEGER*2 LPCATCHBUF [FAR,REFERENCE] (9)
  428.      INTEGER*2 I
  429.       END
  430.       INTERFACE TO SUBROUTINE FatalExit[PASCAL,FAR] (I)
  431.      INTEGER*2 I
  432.       END
  433.       INTERFACE TO SUBROUTINE FatalAppExit[PASCAL,FAR] (I,MSG)
  434.      INTEGER*2 I
  435.      CHARACTER*(*) MSG [REFERENCE,FAR]
  436.       END
  437.       INTERFACE TO SUBROUTINE SwapRecording[PASCAL,FAR] (I)
  438.      INTEGER*2 I
  439.       END
  440. C
  441. C Character Translation Routines
  442. C
  443.       INTERFACE TO FUNCTION AnsiToOem[PASCAL,FAR] (LS1,LS2)
  444.      INTEGER*2 AnsiToOem
  445.      CHARACTER*(*) LS1 [REFERENCE,FAR]
  446.      CHARACTER*(*) LS2 [REFERENCE,FAR]
  447.       END
  448.       INTERFACE TO FUNCTION OemToAnsi[PASCAL,FAR] (LS1,LS2)
  449.      INTEGER*2 OemToAnsi
  450.      CHARACTER*(*) LS1 [REFERENCE,FAR]
  451.      CHARACTER*(*) LS2 [REFERENCE,FAR]
  452.       END
  453.       INTERFACE TO SUBROUTINE AnsiToOemBuff[PASCAL,FAR] (LS1,LS2,I)
  454.      CHARACTER*(*) LS1 [REFERENCE,FAR]
  455.      CHARACTER*(*) LS2 [REFERENCE,FAR]
  456.      INTEGER*2 I
  457.       END
  458.       INTERFACE TO SUBROUTINE OemToAnsiBuff[PASCAL,FAR] (LS1,LS2,I)
  459.      CHARACTER*(*) LS1 [REFERENCE,FAR]
  460.      CHARACTER*(*) LS2 [REFERENCE,FAR]
  461.      INTEGER*2 I
  462.       END
  463.       INTERFACE TO FUNCTION AnsiUpper[PASCAL,FAR] (LS)
  464.      INTEGER*4 AnsiUpper
  465.      CHARACTER*(*) LS [REFERENCE,FAR]
  466.       END
  467.       INTERFACE TO FUNCTION AnsiUpperBuff[PASCAL,FAR] (LS,I)
  468.      INTEGER*2 AnsiUpperBuff,I
  469.      CHARACTER*(*) LS [REFERENCE,FAR]
  470.       END
  471.       INTERFACE TO FUNCTION AnsiLower[PASCAL,FAR] (LS)
  472.      INTEGER*4 AnsiLower
  473.      CHARACTER*(*) LS [REFERENCE,FAR]
  474.       END
  475.       INTERFACE TO FUNCTION AnsiLowerBuff[PASCAL,FAR] (LS,I)
  476.      INTEGER*2 AnsiLowerBuff,I
  477.      CHARACTER*(*) LS [REFERENCE,FAR]
  478.       END
  479.       INTERFACE TO FUNCTION AnsiNext[PASCAL,FAR] (LS)
  480.      INTEGER*4 AnsiNext
  481.      CHARACTER*(*) LS [REFERENCE,FAR]
  482.       END
  483.       INTERFACE TO FUNCTION AnsiPrev[PASCAL,FAR] (LS1,LS2)
  484.      INTEGER*4 AnsiPrev
  485.      CHARACTER*(*) LS1 [REFERENCE,FAR]
  486.      CHARACTER*(*) LS2 [REFERENCE,FAR]
  487.       END
  488. C
  489. C Keyboard Information Routines
  490. C
  491. $IF DEFINED(KEYBOARDINFO)
  492.       INTERFACE TO FUNCTION OemKeyScan[PASCAL,FAR] (I)
  493.      INTEGER*4 OemKeyScan
  494.      INTEGER*2 I
  495.       END
  496.       INTERFACE TO FUNCTION VkKeyScan[PASCAL,FAR] (I)
  497.      INTEGER*2 VkKeyScan,I
  498.       END
  499.       INTERFACE TO FUNCTION GetKeyboardType[PASCAL,FAR] (I)
  500.      INTEGER*2 GetKeyboardType,I
  501.       END
  502.       INTERFACE TO FUNCTION MapVirtualKey[PASCAL,FAR] (I,J)
  503.      INTEGER*2 MapVirtualKey,I,J
  504.       END
  505.       INTERFACE TO FUNCTION GetKBCodePage[PASCAL,FAR] ()
  506.      INTEGER*2 GetKBCodePage
  507.       END
  508.       INTERFACE TO FUNCTION GetKeyNameText[PASCAL,FAR] (I,LS,J)
  509.      INTEGER*2 GetKeyNameText,J
  510.      INTEGER*4 I
  511.      CHARACTER*(*) LS [REFERENCE,FAR]
  512.       END
  513.       INTERFACE TO FUNCTION ToAscii[PASCAL,FAR] (I,J,LS,LC,L)
  514.          INTEGER*2 ToAscii,I,J,K
  515.          CHARACTER*(*) LS [REFERENCE,VAR]
  516.          CHARACTER*(*) LC [REFERENCE,VAR]
  517.       END
  518.  
  519. $ENDIF
  520.  
  521. !$IF DEFINED(LANGUAGE)
  522. !C
  523. !C Language dependent Routines
  524. !C
  525. !
  526. !!BOOL  FAR  PASCAL IsCharAlpha(char);
  527. !!BOOL  FAR  PASCAL IsCharAlphaNumeric(char);
  528. !!BOOL  FAR  PASCAL IsCharUpper(char);
  529. !!BOOL  FAR  PASCAL IsCharLower(char);
  530. !
  531. !$ENDIF ! NOLANGUAGE
  532.  
  533.       INTERFACE TO FUNCTION GetWinFlags[PASCAL,FAR] ()
  534.      INTEGER*4 GetWinFlags
  535.       END
  536.  
  537. $ENDIF ! NOKERNEL
  538.  
  539. C
  540. C GDI Section
  541. C
  542. $IF DEFINED(GDI)
  543. $IF DEFINED(DRAWTEXT)
  544.       INTERFACE TO FUNCTION DrawText[PASCAL,FAR] (HDC,LS,I,R,J)
  545.      INTEGER*2 DrawText,HDC,I,J
  546.      CHARACTER*(*) LS [REFERENCE,FAR]
  547.      STRUCTURE /RECT/
  548.         INTEGER*2 X(4)
  549.      END STRUCTURE
  550.      RECORD /RECT/ R [REFERENCE,FAR]
  551.       END
  552.       INTERFACE TO FUNCTION DrawIcon[PASCAL,FAR] (HDC,I,J,HI)
  553.      INTEGER*2 DrawIcon,HDC,I,J,HI
  554.       END
  555. $ENDIF ! NODRAWTEXT
  556.       INTERFACE TO FUNCTION GetWindowDC[PASCAL,FAR] (HW)
  557.      INTEGER*2 GetWindowDC,HW
  558.       END
  559.       INTERFACE TO FUNCTION GetDC[PASCAL,FAR] (HW)
  560.      INTEGER*2 GetDC,HW
  561.       END
  562.       INTERFACE TO FUNCTION ReleaseDC[PASCAL,FAR] (HW,HDC)
  563.      INTEGER*2 ReleaseDC,HW,HDC
  564.       END
  565.       INTERFACE TO FUNCTION CreateDC[PASCAL,FAR] (LS1,LS2,LS3,LS4)
  566.      INTEGER*2 CreateDC
  567.      CHARACTER*(*) LS1 [REFERENCE,FAR]
  568.      CHARACTER*(*) LS2 [REFERENCE,FAR]
  569.      CHARACTER*(*) LS3 [REFERENCE,FAR]
  570.      CHARACTER*(*) LS4 [REFERENCE,FAR]
  571.       END
  572.       INTERFACE TO FUNCTION CreateIC[PASCAL,FAR] (LS1,LS2,LS3,LS4)
  573.      INTEGER*2 CreateIC
  574.      CHARACTER*(*) LS1 [REFERENCE,FAR]
  575.      CHARACTER*(*) LS2 [REFERENCE,FAR]
  576.      CHARACTER*(*) LS3 [REFERENCE,FAR]
  577.      CHARACTER*(*) LS4 [REFERENCE,FAR]
  578.       END
  579.       INTERFACE TO FUNCTION CreateCompatibleDC[PASCAL,FAR] (HDC)
  580.      INTEGER*2 CreateCompatibleDC,HDC
  581.       END
  582.       INTERFACE TO FUNCTION DeleteDC[PASCAL,FAR] (HDC)
  583.      INTEGER*2 DeleteDC,HDC
  584.       END
  585.       INTERFACE TO FUNCTION SaveDC [PASCAL,FAR] (HDC)
  586.      INTEGER*2 SaveDC,HDC
  587.       END
  588.       INTERFACE TO FUNCTION RestoreDC[PASCAL,FAR] (HDC,I)
  589.      INTEGER*2 RestoreDC,HDC,I
  590.       END
  591.       INTERFACE TO FUNCTION MoveTo[PASCAL,FAR] (HDC,I,J)
  592.      INTEGER*4 MoveTo
  593.      INTEGER*2 HDC,I,J
  594.       END
  595.       INTERFACE TO FUNCTION GetCurrentPosition[PASCAL,FAR] (HDC)
  596.      INTEGER*4 GetCurrentPosition
  597.      INTEGER*2 HDC
  598.       END
  599.       INTERFACE TO FUNCTION LineTo[PASCAL,FAR] (HDC,I,J)
  600.      INTEGER*2 LineTo,HDC,I,J
  601.       END
  602.       INTERFACE TO FUNCTION GetDCOrg[PASCAL,FAR] (HDC)
  603.      INTEGER*4 GetDCOrg
  604.      INTEGER*2 HDC
  605.       END
  606.       INTERFACE TO FUNCTION ExtTextOut[PASCAL,FAR] (HDC,I,J,K,R,LS,M,N)
  607.      INTEGER*2 ExtTextOut,HDC,I,J,K
  608.      STRUCTURE /RECT/
  609.         INTEGER*2 X(4)
  610.      END STRUCTURE
  611.      RECORD /RECT/ R [REFERENCE,FAR]
  612.      CHARACTER*(*) LS [REFERENCE,FAR]
  613.      INTEGER*2 M
  614.      INTEGER*2 N [REFERENCE,FAR]
  615.       END
  616.       INTERFACE TO FUNCTION Polyline[PASCAL,FAR] (HDC,LPPOINT,I)
  617.      INTEGER*2 Polyline,HDC
  618.      STRUCTURE /POINT/
  619.         INTEGER*2 X,Y
  620.      END STRUCTURE
  621.      RECORD /POINT/ LPPOINT [REFERENCE,FAR] (*)
  622.      INTEGER*2 I
  623.       END
  624.       INTERFACE TO FUNCTION Polygon[PASCAL,FAR] (HDC,LPPOINT,I)
  625.      INTEGER*2 Polygon,HDC
  626.      STRUCTURE /POINT/
  627.         INTEGER*2 X,Y
  628.      END STRUCTURE
  629.      RECORD /POINT/ LPPOINT [REFERENCE,FAR] (*)
  630.      INTEGER*2 I
  631.       END
  632.       INTERFACE TO FUNCTION PolyPolygon[PASCAL,FAR]
  633.      *                                             (HDC,LPPOINT,LPINT,I)
  634.      INTEGER*2 PolyPolygon,HDC
  635.      STRUCTURE /POINT/
  636.         INTEGER*2 X,Y
  637.      END STRUCTURE
  638.      RECORD /POINT/ LPPOINT [REFERENCE,FAR] (*)
  639.      INTEGER*2 LPINT,I
  640.       END
  641.       INTERFACE TO FUNCTION Rectangle[PASCAL,FAR] (HDC,I,J,K,L)
  642.       INTEGER*2 Rectangle,HDC,I,J,K,L
  643.       END
  644.       INTERFACE TO FUNCTION RoundRect[PASCAL,FAR] (HDC,I,J,K,L,M,N)
  645.       INTEGER*2 RoundRect,HDC,I,J,K,L,M,N
  646.       END
  647.       INTERFACE TO FUNCTION ELLIPSE[PASCAL,FAR] (HDC,I,J,K,L)
  648.       INTEGER*2 Ellipse,HDC,I,J,K,L
  649.       END
  650.       INTERFACE TO FUNCTION Arc[PASCAL,FAR] (HDC,I,J,K,L,M,N,O,P)
  651.       INTEGER*2 Arc,HDC,I,J,K,L,M,N,O,P
  652.       END
  653.       INTERFACE TO FUNCTION Chord[PASCAL,FAR] (HDC,I,J,K,L,M,N,O,P)
  654.       INTEGER*2 Chord,HDC,I,J,K,L,M,N,O,P
  655.       END
  656.       INTERFACE TO FUNCTION Pie[PASCAL,FAR] (HDC,I,J,K,L,M,N,O,P)
  657.       INTEGER*2 Pie,HDC,I,J,K,L,M,N,O,P
  658.       END
  659.       INTERFACE TO FUNCTION PatBlt[PASCAL,FAR] (HDC,I,J,K,L,M)
  660.      INTEGER*2 PatBlt,HDC,I,J,K,L
  661.      INTEGER*4 M
  662.       END
  663.       INTERFACE TO FUNCTION BitBlt[PASCAL,FAR] (HDC,I,J,K,L,HDC2,M,N,O)
  664.      INTEGER*2 BitBlt,HDC,I,J,K,L,HDC2,M,N
  665.      INTEGER*4 O
  666.       END
  667.       INTERFACE TO FUNCTION StretchBlt[PASCAL,FAR]
  668.      *                                      (HDC,I,J,K,L,HDC2,M,N,O,P,Q)
  669.      INTEGER*2 StretchBlt,HDC,I,J,K,L,HDC2,M,N,O,P
  670.      INTEGER*4 Q
  671.       END
  672.       INTERFACE TO FUNCTION TextOut[PASCAL,FAR] (HDC,I,J,LS,K)
  673.      INTEGER*2 TextOut,I,J
  674.      CHARACTER*(*) LS [REFERENCE,FAR]
  675.      INTEGER*2 K
  676.       END
  677.       INTERFACE TO FUNCTION TabbedTextOut[PASCAL,FAR]
  678.      *                                          (HDC,I,J,LS,K,L,LPINT,M)
  679.      INTEGER*4 TabbedTextOut
  680.      INTEGER*2 HDC,I,J
  681.      CHARACTER*(*) LS [REFERENCE,FAR]
  682.      INTEGER*2 K,L
  683.      INTEGER*2 LPINT [REFERENCE,FAR]
  684.      INTEGER*2 M
  685.       END
  686.       INTERFACE TO FUNCTION GetCharWidth[PASCAL,FAR] (HDC,I,J,LPINT)
  687.      INTEGER*2 GetCharWidth,HDC,I,J
  688.      INTEGER*2 LPINT [REFERENCE,FAR]
  689.       END
  690.       INTERFACE TO FUNCTION SetPixel[PASCAL,FAR] (HDC,I,J,K)
  691.      INTEGER*4 SetPixel,K
  692.      INTEGER*2 HDC,I,J
  693.       END
  694.       INTERFACE TO FUNCTION GetPixel[PASCAL,FAR] (HDC,I,J)
  695.      INTEGER*4 GetPixel
  696.      INTEGER*2 HDC,I,J
  697.       END
  698.       INTERFACE TO FUNCTION FloodFill[PASCAL,FAR] (HDC,I,J,K)
  699.      INTEGER*2 FloodFill,HDC,I,J
  700.      INTEGER*4 K
  701.       END
  702.       INTERFACE TO FUNCTION ExtFloodFill[PASCAL,FAR] (HDC,I,J,K,L)
  703.      INTEGER*2 ExtFloodFill,HDC,I,J,L
  704.      INTEGER*4 K
  705.       END
  706.       INTERFACE TO SUBROUTINE LineDAA[PASCAL,FAR] (I,J,K,L,FP,LS)
  707.      INTEGER*2 I,J,K,L
  708.      EXTERNAL FP [REFERENCE,FAR]
  709.      CHARACTER*(*) LS [REFERENCE,FAR]
  710.       END
  711.       INTERFACE TO FUNCTION GetStockObject[PASCAL,FAR] (int)
  712.      INTEGER*2 GetStockObject,INT
  713.       END
  714.       INTERFACE TO FUNCTION CreatePen[PASCAL,FAR] (I,J,K)
  715.      INTEGER*2 CreatePen,I,J
  716.      INTEGER*4 K
  717.       END
  718.       INTERFACE TO FUNCTION CreatePenIndirect[PASCAL,FAR] (LOGPEN)
  719.      INTEGER*2 CreatePenIndirect
  720.      STRUCTURE /PEN/
  721.         INTEGER*2 X(5)
  722.      END STRUCTURE
  723.      RECORD /PEN/ LOGPEN [REFERENCE,FAR]
  724.       END
  725.       INTERFACE TO FUNCTION CreateSolidBrush[PASCAL,FAR] (I)
  726.      INTEGER*2 CreateSolidBrush
  727.      INTEGER*4 I
  728.       END
  729.       INTERFACE TO FUNCTION CreateHatchBrush[PASCAL,FAR] (I,J)
  730.      INTEGER*2 CreateHatchBrush,I
  731.      INTEGER*4 J
  732.       END
  733.       INTERFACE TO FUNCTION SetBrushOrg[PASCAL,FAR] (HDC,I,J)
  734.      INTEGER*4 SetBrushOrg
  735.      INTEGER*2 HDC,I,J
  736.       END
  737.       INTERFACE TO FUNCTION GetBrushOrg[PASCAL,FAR] (HDC)
  738.      INTEGER*4 GetBrushOrg
  739.      INTEGER*2 HDC
  740.       END
  741.       INTERFACE TO FUNCTION CreatePatternBrush[PASCAL,FAR] (HB)
  742.      INTEGER*2 CreatePatternBrush,HB
  743.       END
  744.       INTERFACE TO FUNCTION CreateBrushIndirect[PASCAL,FAR] (BR)
  745.      INTEGER*2 CreateBrushIndirect
  746.      STRUCTURE /BRUSH/
  747.         INTEGER*2 X(4)
  748.      END STRUCTURE
  749.      RECORD /BRUSH/ BR [REFERENCE,FAR]
  750.       END
  751.       INTERFACE TO FUNCTION CreateBitmap[PASCAL,FAR] (I,J,K,L,LS)
  752.      INTEGER*2 CreateBitmap,I,J
  753.      BYTE K,L
  754.      CHARACTER*(*) LS [REFERENCE,FAR]
  755.       END
  756.       INTERFACE TO FUNCTION CreateBitmapIndirect[PASCAL,FAR] (LPBMP)
  757.      INTEGER*2 CreateBitmapIndirect
  758.      STRUCTURE /BMP/
  759.         INTEGER*2 X(8)
  760.      END STRUCTURE
  761.      RECORD /BMP/ LPBMP [REFERENCE,FAR] ! Not sure about this one
  762.       END
  763.       INTERFACE TO FUNCTION CreateCompatibleBitmap[PASCAL,FAR] (HDC,I,J)
  764.      INTEGER*2 CreateCompatibleBitmap,HDC,I,J
  765.       END
  766.       INTERFACE TO FUNCTION CreateDiscardableBitmap[PASCAL,FAR]
  767.      *                                                         (HDC,I,J)
  768.      INTEGER*2 CreateDiscardableBitmap,HDC,I,J
  769.       END
  770.       INTERFACE TO FUNCTION SetBitmapBits[PASCAL,FAR] (HB,I,LS)
  771.      INTEGER*4 SetBitmapBits,I
  772.      INTEGER*2 HB
  773.      BYTE LS [REFERENCE,FAR] (*)
  774.       END
  775.       INTERFACE TO FUNCTION GetBitmapBits[PASCAL,FAR] (HB,I,LS)
  776.      INTEGER*4 GetBitmapBits,I
  777.      INTEGER*2 HB
  778.      BYTE LS [REFERENCE,FAR] (*)
  779.       END
  780.       INTERFACE TO FUNCTION SetBitmapDimension[PASCAL,FAR] (HB,I,J)
  781.      INTEGER*4 SetBitmapDimension
  782.      INTEGER*2 HB,I,J
  783.       END
  784.       INTERFACE TO FUNCTION GetBitmapDimension[PASCAL,FAR] (H)
  785.      INTEGER*4 GetBitmapDimension
  786.      INTEGER*2 H
  787.       END
  788.       INTERFACE TO FUNCTION CreateFont[PASCAL,FAR]
  789.      *                                    (I,J,K,L,M,N,O,P,Q,R,S,T,U,LS)
  790.      INTEGER*2 CreateFont,I,J,K,L,M
  791.      BYTE N,O,P,Q,R,S,T,U
  792.      BYTE LS [REFERENCE,FAR] (*)
  793.       END
  794.       INTERFACE TO FUNCTION CreateFontIndirect[PASCAL,FAR] (LOGFONT)
  795.      INTEGER*2 CreateFontIndirect
  796.      STRUCTURE /FONT/
  797.         INTEGER*2 X(25)
  798.      END STRUCTURE
  799.      RECORD /FONT/ LOGFONT [REFERENCE,FAR]
  800.       END
  801.       INTERFACE TO FUNCTION SelectClipRgn[PASCAL,FAR] (HDC,HR)
  802.      INTEGER*2 SelectClipRgn,HDC,HR
  803.       END
  804.       INTERFACE TO FUNCTION CreateRectRgn[PASCAL,FAR] (I,J,K,L)
  805.      INTEGER*2 CreateRectRgn,I,J,K,L
  806.       END
  807.       INTERFACE TO SUBROUTINE SetRectRgn[PASCAL,FAR] (HR,I,J,K,L)
  808.      INTEGER*2 HR,I,J,K,L
  809.       END
  810.       INTERFACE TO FUNCTION CreateRectRgnIndirect[PASCAL,FAR] (R)
  811.      INTEGER*2 CreateRectRgnIndirect
  812.      STRUCTURE /RECT/
  813.         INTEGER*2 X(4)
  814.      END STRUCTURE
  815.      RECORD /RECT/ R [REFERENCE,FAR]
  816.       END
  817.       INTERFACE TO FUNCTION CreateEllipticRgnIndirect[PASCAL,FAR] (R)
  818.      INTEGER*2 CreateEllipticRgnIndirect
  819.      STRUCTURE /RECT/
  820.         INTEGER*2 X(4)
  821.      END STRUCTURE
  822.      RECORD /RECT/ R [REFERENCE,FAR]
  823.       END
  824.       INTERFACE TO FUNCTION CreateEllipticRgn[PASCAL,FAR] (I,J,K,L)
  825.      INTEGER*2 CreateEllipticRgn,I,J,K,L
  826.       END
  827.       INTERFACE TO FUNCTION CreatePolygonRgn[PASCAL,FAR] (P,I,J)
  828.      INTEGER*2 CreatePolygonRgn,I,J
  829.      STRUCTURE /PNT/
  830.         INTEGER*2 X(2)
  831.      END STRUCTURE
  832.      RECORD /PNT/ P [REFERENCE,FAR]
  833.       END
  834.       INTERFACE TO FUNCTION CreatePolyPolygonRgn[PASCAL,FAR] (P,I,J,K)
  835.      INTEGER*2 CreatePolyPolygonRgn,J,K
  836.      STRUCTURE /PNT/
  837.         INTEGER*2 X(2)
  838.      END STRUCTURE
  839.      RECORD /PNT/ P [REFERENCE,FAR]
  840.      INTEGER*2 I [REFERENCE,FAR]
  841.       END
  842.       INTERFACE TO FUNCTION CreateRoundRectRgn[PASCAL,FAR] (I,J,K,L,M,N)
  843.      INTEGER*2 CreateRoundRectRgn,I,J,K,L,M,N
  844.       END
  845.       INTERFACE TO FUNCTION GetObject[PASCAL,FAR] (H,I,LBUF)
  846.      INTEGER*2 GetObject,H,I
  847.      BYTE LBUF [REFERENCE,FAR] (*)
  848.       END
  849.       INTERFACE TO FUNCTION DeleteObject[PASCAL,FAR] (H)
  850.      INTEGER*2 DeleteObject,H
  851.       END
  852.       INTERFACE TO FUNCTION SelectObject[PASCAL,FAR] (HDC,H)
  853.      INTEGER*2 SelectObject,HDC,H
  854.       END
  855.       INTERFACE TO FUNCTION UnrealizeObject[PASCAL,FAR] (HB)
  856.      INTEGER*2  UnrealizeObject,HB
  857.       END
  858.       INTERFACE TO FUNCTION SetBkColor[PASCAL,FAR] (HDC,I)
  859.      INTEGER*2 SetBkColor,HDC
  860.      INTEGER*4 I
  861.       END
  862.       INTERFACE TO FUNCTION GetBkColor[PASCAL,FAR] (HDC)
  863.      INTEGER*4 GetBkColor
  864.      INTEGER*2 HDC
  865.       END
  866.       INTERFACE TO FUNCTION SetBkMode[PASCAL,FAR] (HDC,I)
  867.      INTEGER*2 SetBkMode,HDC,I
  868.       END
  869.       INTERFACE TO FUNCTION GetBkMode[PASCAL,FAR] (HDC)
  870.      INTEGER*2 GetBkMode,HDC
  871.       END
  872.       INTERFACE TO FUNCTION SetTextColor[PASCAL,FAR] (HDC,I)
  873.      INTEGER*4 SetTextColor,I
  874.      INTEGER*2 HDC
  875.       END
  876.       INTERFACE TO FUNCTION GetTextColor[PASCAL,FAR] (HDC)
  877.      INTEGER*4 GetTextColor
  878.      INTEGER*2 HDC
  879.       END
  880.       INTERFACE TO FUNCTION SetTextAlign [PASCAL,FAR] (HDC,I)
  881.      INTEGER*2 SetTextAlign,HDC,I
  882.       END
  883.       INTERFACE TO FUNCTION GetTextAlign [PASCAL,FAR] (HDC)
  884.      INTEGER*2 GetTextAlign,HDC
  885.       END
  886.       INTERFACE TO FUNCTION SetMapperFlags[PASCAL,FAR] (HDC,I)
  887.      INTEGER*4 SetMapperFlags
  888.      INTEGER*2 I
  889.       END
  890.       INTERFACE TO FUNCTION GetAspectRatioFilter[PASCAL,FAR] (HDC)
  891.      INTEGER*4 GetAspectRatioFilter
  892.      INTEGER*2 HDC
  893.       END
  894.       INTERFACE TO FUNCTION GetNearestColor[PASCAL,FAR] (HDC,I)
  895.      INTEGER*4 GetNearestColor,I
  896.      INTEGER*2 HDC
  897.       END
  898.       INTERFACE TO FUNCTION SetROP2[PASCAL,FAR] (HDC,I)
  899.      INTEGER*2 SetROP2,HDC,I
  900.       END
  901.       INTERFACE TO FUNCTION GetROP2[PASCAL,FAR] (HDC)
  902.      INTEGER*2 GetROP2,HDC
  903.       END
  904.       INTERFACE TO FUNCTION SetStretchBltMode[PASCAL,FAR] (HDC,I)
  905.      INTEGER*2 SetStretchBltMode,HDC,I
  906.       END
  907.       INTERFACE TO FUNCTION GetStretchBltMode[PASCAL,FAR] (HDC)
  908.      INTEGER*2 GetStretchBltMode,HDC
  909.       END
  910.       INTERFACE TO FUNCTION SetPolyFillMode[PASCAL,FAR] (HDC,I)
  911.      INTEGER*2 SetPolyFillMode,HDC,I
  912.       END
  913.       INTERFACE TO FUNCTION GetPolyFillMode[PASCAL,FAR] (HDC)
  914.      INTEGER*2 GetPolyFillMode,HDC
  915.       END
  916.       INTERFACE TO FUNCTION SetMapMode[PASCAL,FAR] (HDC,I)
  917.      INTEGER*2 SetMapMode,HDC,I
  918.       END
  919.       INTERFACE TO FUNCTION GetMapMode[PASCAL,FAR] (HDC)
  920.      INTEGER*2 GetMapMode,HDC
  921.       END
  922.       INTERFACE TO FUNCTION SetWindowOrg[PASCAL,FAR] (HDC,I,J)
  923.      INTEGER*4 SetWindowOrg
  924.      INTEGER*2 HDC,I,J
  925.       END
  926.       INTERFACE TO FUNCTION GetWindowOrg[PASCAL,FAR] (HDC)
  927.      INTEGER*4 GetWindowOrg
  928.      INTEGER*2 HDC
  929.       END
  930.       INTERFACE TO FUNCTION SetWindowExt[PASCAL,FAR] (HDC,I,J)
  931.      INTEGER*4 SetWindowExt
  932.      INTEGER*2 HDC,I,J
  933.       END
  934.       INTERFACE TO FUNCTION GetWindowExt[PASCAL,FAR] (HDC)
  935.      INTEGER*4 GetWindowExt
  936.      INTEGER*2 HDC
  937.       END
  938.       INTERFACE TO FUNCTION SetViewportOrg[PASCAL,FAR] (HDC,I,J)
  939.      INTEGER*4 SetViewportOrg
  940.      INTEGER*2 HDC,I,J
  941.       END
  942.       INTERFACE TO FUNCTION GetViewportOrg[PASCAL,FAR] (HDC)
  943.      INTEGER*4 GetViewportOrg
  944.      INTEGER*2 HDC
  945.       END
  946.       INTERFACE TO FUNCTION SetViewportExt[PASCAL,FAR] (HDC,I,J)
  947.      INTEGER*4 SetViewportExt
  948.      INTEGER*2 HDC,I,J
  949.       END
  950.       INTERFACE TO FUNCTION GetViewportExt[PASCAL,FAR] (HDC)
  951.      INTEGER*4 GetViewportExt
  952.      INTEGER*2 HDC
  953.       END
  954.       INTERFACE TO FUNCTION OffsetViewportOrg[PASCAL,FAR] (HDC,I,J)
  955.      INTEGER*4 OffsetViewportOrg
  956.      INTEGER*2 HDC,I,J
  957.       END
  958.       INTERFACE TO FUNCTION ScaleViewportExt[PASCAL,FAR] (HDC,I,J,K,L)
  959.      INTEGER*4 ScaleViewportExt
  960.      INTEGER*2 HDC,I,J,K,L
  961.       END
  962.       INTERFACE TO FUNCTION OffsetWindowOrg[PASCAL,FAR] (HDC,I,J)
  963.      INTEGER*4 OffsetWindowOrg
  964.      INTEGER*2 HDC,I,J
  965.       END
  966.       INTERFACE TO FUNCTION ScaleWindowExt[PASCAL,FAR] (HDC,I,J,K,L)
  967.      INTEGER*4 ScaleWindowExt
  968.      INTEGER*2 HDC,I,J,K,L
  969.       END
  970.       INTERFACE TO FUNCTION GetClipBox[PASCAL,FAR] (HDC,R)
  971.      INTEGER*2 GetClipBox,HDC
  972.      STRUCTURE /RECT/
  973.         INTEGER*2 X(4)
  974.      END STRUCTURE
  975.      RECORD /RECT/ R [REFERENCE,FAR]
  976.       END
  977.       INTERFACE TO FUNCTION IntersectClipRect[PASCAL,FAR] (HDC,I,J,K,L)
  978.      INTEGER*2 IntersectClipRect,HDC,I,J,K,L
  979.       END
  980.       INTERFACE TO FUNCTION OffsetClipRgn[PASCAL,FAR] (HDC,I,J)
  981.      INTEGER*2 OffsetClipRgn,HDC,I,J
  982.       END
  983.       INTERFACE TO FUNCTION ExcludeClipRect[PASCAL,FAR] (HDC,I,J,K,L)
  984.      INTEGER*2 ExcludeClipRect,HDC,I,J,K,L
  985.       END
  986.       INTERFACE TO FUNCTION PtVisible[PASCAL,FAR] (HDC,I,J)
  987.      INTEGER*2 PtVisible,HDC,I,J
  988.       END
  989.       INTERFACE TO FUNCTION CombineRgn[PASCAL,FAR] (H1,H2,H3,I)
  990.      INTEGER*2 CombineRgn,H1,H2,H3,I
  991.       END
  992.       INTERFACE TO FUNCTION EqualRgn[PASCAL,FAR] (H1,H2)
  993.      INTEGER*2 EqualRgn,H1,H2
  994.       END
  995.       INTERFACE TO FUNCTION OffsetRgn[PASCAL,FAR] (H,I,J)
  996.      INTEGER*2 OffsetRgn,H,I,J
  997.       END
  998.       INTERFACE TO FUNCTION GetRgnBox[PASCAL,FAR] (H,R)
  999.      INTEGER*2 GetRgnBox,H
  1000.      STRUCTURE /RECT/
  1001.         INTEGER*2 X(4)
  1002.      END STRUCTURE
  1003.      RECORD /RECT/ R [REFERENCE,FAR]
  1004.       END
  1005.       INTERFACE TO FUNCTION SetTextJustification[PASCAL,FAR] (HDC,I,J)
  1006.      INTEGER*2 SetTextJustification,HDC,I,J
  1007.       END
  1008.       INTERFACE TO FUNCTION GetTextExtent[PASCAL,FAR] (HDC,LS,I)
  1009.      INTEGER*4 GetTextExtent
  1010.      INTEGER*2 HDC,I
  1011.      CHARACTER*(*) LS [REFERENCE,FAR]
  1012.       END
  1013.       INTERFACE TO FUNCTION GetTabbedTextExtent[PASCAL,FAR]
  1014.      *                                                    (HDC,LS,I,J,K)
  1015.      INTEGER*4 GetTabbedTextExtent
  1016.      INTEGER*2 HDC,I,J
  1017.      CHARACTER*(*) LS [REFERENCE,FAR]
  1018.      INTEGER*2 K [REFERENCE,FAR]
  1019.       END
  1020.       INTERFACE TO FUNCTION SetTextCharacterExtra[PASCAL,FAR] (HDC,I)
  1021.      INTEGER*2 SetTextCharacterExtra,HDC,I
  1022.       END
  1023.       INTERFACE TO FUNCTION GetTextCharacterExtra[PASCAL,FAR] (HDC)
  1024.      INTEGER*2 GetTextCharacterExtra,HDC
  1025.       END
  1026.       INTERFACE TO FUNCTION GetMetaFile[PASCAL,FAR] (LS)
  1027.      INTEGER*2 GetMetaFile
  1028.      CHARACTER*(*) LS [REFERENCE,FAR]
  1029.       END
  1030.       INTERFACE TO FUNCTION DeleteMetaFile[PASCAL,FAR] (H)
  1031.      INTEGER*2 DeleteMetaFile,H
  1032.       END
  1033.       INTERFACE TO FUNCTION CopyMetaFile[PASCAL,FAR] (H,LS)
  1034.      INTEGER*2 CopyMetaFile,H
  1035.      CHARACTER*(*) LS [REFERENCE,FAR]
  1036.       END
  1037.  
  1038. $IF DEFINED(METAFILE)
  1039.       INTERFACE TO SUBROUTINE PlayMetaFileRecord[PASCAL,FAR]
  1040.      *                                                     (HDC,HT,MR,I)
  1041.          INTEGER*2 HDC,I
  1042.          STRUCTURE /T/
  1043.             INTEGER*2 X(1)
  1044.          END STRUCTURE
  1045.          RECORD /T/ HT
  1046.          STRUCTURE /R/
  1047.             INTEGER*2 X(4)
  1048.          END STRUCTURE
  1049.          RECORD /R/ MR
  1050.       END
  1051.       INTERFACE TO FUNCTION EnumMetaFile[PASCAL,FAR] (HDC,LH,FP,B)
  1052.          INTEGER*2 EnumMetaFile,HDC,LH
  1053.          EXTERNAL FP [REFERENCE,FAR]
  1054.          BYTE B [REFERENCE,FAR]
  1055.       END
  1056. $ENDIF
  1057.  
  1058.       INTERFACE TO FUNCTION PlayMetaFile[PASCAL,FAR] (HDC,H)
  1059.          INTEGER*2 PlayMetaFile,HDC,H
  1060.       END
  1061.       INTERFACE TO FUNCTION Escape[PASCAL,FAR] (HDC,I,J,LS1,LS2)
  1062.          INTEGER*2 Escape,HDC,I,J
  1063.          CHARACTER*(*) LS1 [REFERENCE,FAR]
  1064.          CHARACTER*(*) LS2 [REFERENCE,FAR]
  1065.       END
  1066.       INTERFACE TO FUNCTION EnumFonts[PASCAL,FAR] (HDC,LS1,FP,LS2)
  1067.          INTEGER*2 EnumFonts,HDC
  1068.          CHARACTER*(*) LS1 [REFERENCE,FAR]
  1069.          EXTERNAL FP [REFERENCE,FAR]
  1070.          CHARACTER*(*) LS2 [REFERENCE,FAR]
  1071.       END
  1072.       INTERFACE TO FUNCTION EnumObjects[PASCAL,FAR] (HDC,I,FP,LS)
  1073.          INTEGER*2 EnumObjects,HDC,I
  1074.          EXTERNAL FP [REFERENCE,FAR]
  1075.          CHARACTER*(*) LS [REFERENCE,FAR]
  1076.       END
  1077.       INTERFACE TO FUNCTION GetTextFace[PASCAL,FAR] (HDC,I,LS)
  1078.          INTEGER*2 GetTextFace,HDC,I
  1079.          CHARACTER*(*) LS [REFERENCE,FAR]
  1080.       END
  1081.  
  1082. $IF DEFINED(TEXTMETRIC)
  1083.       INTERFACE TO FUNCTION GetTextMetrics[PASCAL,FAR] (HDC,LPTXTM)
  1084.      INTEGER*2 GetTextMetrics,HDC
  1085.      STRUCTURE /TXTM/
  1086.         BYTE X(31)
  1087.      END STRUCTURE
  1088.      RECORD /TXTM/ LPTXTM [REFERENCE,FAR]
  1089.       END
  1090. $ENDIF
  1091.       INTERFACE TO FUNCTION GetDeviceCaps[PASCAL,FAR] (HDC,I)
  1092.      INTEGER*2 GetDeviceCaps,HDC,I
  1093.       END
  1094.       INTERFACE TO FUNCTION SetEnvironment[PASCAL,FAR] (LS1,LS2,I)
  1095.      INTEGER*2 SetEnvironment
  1096.      CHARACTER*(*) LS1 [REFERENCE,FAR]
  1097.      CHARACTER*(*) LS2 [REFERENCE,FAR]
  1098.      INTEGER*2 I
  1099.       END
  1100.       INTERFACE TO FUNCTION GetEnvironment[PASCAL,FAR] (LS1,LS2,I)
  1101.      INTEGER*2 GetEnvironment
  1102.      CHARACTER*(*) LS1 [REFERENCE,FAR]
  1103.      CHARACTER*(*) LS2 [REFERENCE,FAR]
  1104.      INTEGER*2 I
  1105.       END
  1106.       INTERFACE TO FUNCTION DPtoLP[PASCAL,FAR] (HDC,LPPOINT,I)
  1107.      INTEGER*2 DPtoLP,HDC,I
  1108.      STRUCTURE /POINT/
  1109.         INTEGER*2 X(2)
  1110.      END STRUCTURE
  1111.      RECORD /POINT/ LPPOINT [REFERENCE,FAR]
  1112.       END
  1113.       INTERFACE TO FUNCTION LPtoDP[PASCAL,FAR] (HDC,LPPOINT,I)
  1114.      INTEGER*2 LPtoDP,HDC,I
  1115.      STRUCTURE /POINT/
  1116.         INTEGER*2 X(2)
  1117.      END STRUCTURE
  1118.      RECORD /POINT/ LPPOINT [REFERENCE,FAR]
  1119.       END
  1120.       INTERFACE TO FUNCTION CreateMetaFile[PASCAL,FAR] (LS)
  1121.      INTEGER*2 CreateMetaFile
  1122.      CHARACTER*(*) LS [REFERENCE,FAR]
  1123.       END
  1124.       INTERFACE TO FUNCTION CloseMetaFile[PASCAL,FAR] (H)
  1125.      INTEGER*2 CloseMetaFile,H
  1126.       END
  1127.       INTERFACE TO FUNCTION GetMetaFileBits[PASCAL,FAR] (H)
  1128.      INTEGER*2 GetMetaFileBits,H
  1129.       END
  1130.       INTERFACE TO FUNCTION SetMetaFileBits[PASCAL,FAR] (H)
  1131.      INTEGER*2 SetMetaFileBits,H
  1132.       END
  1133.       INTERFACE TO FUNCTION SetDIBits[PASCAL,FAR] (HDC,H,I,J,LS,BMPI,K)
  1134.      INTEGER*2 SetDIBits,HDC,H,I,J
  1135.      CHARACTER*(*) LS [REFERENCE,FAR]
  1136.      STRUCTURE /BITMAPINFO/
  1137.         INTEGER*2 X(22)
  1138.      END STRUCTURE
  1139.      RECORD /BITMAPINFO/ BMPI [REFERENCE,FAR]
  1140.      INTEGER*2 K
  1141.       END
  1142.       INTERFACE TO FUNCTION SetDIBits_A[PASCAL,FAR]
  1143.      *                                             (HDC,H,I,J,LS,BMPI,K)
  1144.      INTEGER*2 SetDIBits_A[ALIAS:"GETDIBITS"],HDC,H,I,J
  1145.      INTEGER*4 LS
  1146.      STRUCTURE /BITMAPINFO/
  1147.         INTEGER*2 X(22)
  1148.      END STRUCTURE
  1149.      RECORD /BITMAPINFO/ BMPI [REFERENCE,FAR]
  1150.      INTEGER*2 K
  1151.       END
  1152. C TWO INTERFACES FOR THIS ONE, SO ADDRESS CAN BE PASSED FOR LS
  1153. C SEE REF VOL 1 PAGE 4-172. AND SETDIBITS.
  1154.       INTERFACE TO FUNCTION GetDIBits[PASCAL,FAR] (HDC,H,I,J,LS,BMPI,K)
  1155.      INTEGER*2 GetDIBits,HDC,H,I,J
  1156.      BYTE LS [REFERENCE,FAR] (*)
  1157.      STRUCTURE /BITMAPINFO/
  1158.         INTEGER*2 X(22)
  1159.      END STRUCTURE
  1160.      RECORD /BITMAPINFO/ BMPI [REFERENCE,FAR]
  1161.      INTEGER*2 K
  1162.       END
  1163.       INTERFACE TO FUNCTION GetDIBits_A[PASCAL,FAR]
  1164.      *                                             (HDC,H,I,J,LS,BMPI,K)
  1165.      INTEGER*2 GetDIBits_A[ALIAS:"GETDIBITS"],HDC,H,I,J
  1166.      INTEGER*4 LS
  1167.      STRUCTURE /BITMAPINFO/
  1168.         INTEGER*2 X(22)
  1169.      END STRUCTURE
  1170.      RECORD /BITMAPINFO/ BMPI [REFERENCE,FAR]
  1171.      INTEGER*2 K
  1172.       END
  1173.       INTERFACE TO FUNCTION SetDIBitsToDevice[PASCAL,FAR]
  1174.      *                                (HDC,I,J,K,L,M,N,O,P,LS,BMPI,Q)
  1175.      INTEGER*2 SetDIBitsToDevice,HDC,I,J,K,L,M,N,O,P,Q
  1176.      BYTE LS [REFERENCE,FAR] (*)
  1177.      STRUCTURE /BITMAPINFO/
  1178.         INTEGER*2 X(22)
  1179.      END STRUCTURE
  1180.      RECORD /BITMAPINFO/ BMPI [REFERENCE,FAR]
  1181.       END
  1182.       INTERFACE TO FUNCTION CreateDIBitmap[PASCAL,FAR]
  1183.      *                                        (HDC,BMPIH,I,LS,BMPI,J)
  1184.      INTEGER*2 CreateDIBitmap,HDC,I,J
  1185.      STRUCTURE /BITMAPINFOH/
  1186.         INTEGER*2 X(20)
  1187.      END STRUCTURE
  1188.      RECORD /BITMAPINFOH/ BMPIH [REFERENCE,FAR]
  1189.      STRUCTURE /BITMAPINFO/
  1190.         INTEGER*2 X(22)
  1191.      END STRUCTURE
  1192.      RECORD /BITMAPINFO/ BMPI [REFERENCE,FAR]
  1193.       END
  1194.       INTERFACE TO FUNCTION CreateDIBPatternBrush[PASCAL,FAR] (H,I)
  1195.      INTEGER*2 CreateDIBPatternBrush,H,I
  1196.       END
  1197.       INTERFACE TO FUNCTION StretchDIBits[PASCAL,FAR]
  1198.      *                              (HDC,I,J,K,L,M,N,O,P,LS,BMPI,Q,R)
  1199.      INTEGER*2 StretchDIBits,HDC,I,J,K,L,M,N,O,P,Q
  1200.      BYTE LS [REFERENCE,FAR] (*)
  1201.      STRUCTURE /BITMAPINFO/
  1202.         INTEGER*2 X(22)
  1203.      END STRUCTURE
  1204.      RECORD /BITMAPINFO/ BMPI [REFERENCE,FAR]
  1205.      INTEGER*4 R
  1206.       END
  1207.       INTERFACE TO FUNCTION CreatePalette [PASCAL,FAR] (LPLOGPAL)
  1208.      INTEGER*2 CreatePalette
  1209.      STRUCTURE /LOGPAL/
  1210.         INTEGER*2 X(4)
  1211.      END STRUCTURE
  1212.      RECORD /LOGPAL/ LPLOGPAL [REFERENCE,FAR]
  1213.       END
  1214.       INTERFACE TO FUNCTION SelectPalette [PASCAL,FAR] (HDC,HP,I)
  1215.      INTEGER*2 SelectPalette,HDC,HP,I
  1216.       END
  1217.       INTERFACE TO FUNCTION RealizePalette [PASCAL,FAR] (HDC)
  1218.      INTEGER*2 RealizePalette,HDC
  1219.       END
  1220.       INTERFACE TO FUNCTION UpdateColors [PASCAL,FAR] (HDC)
  1221.      INTEGER*2 UpdateColors,HDC
  1222.       END
  1223.       INTERFACE TO SUBROUTINE AnimatePalette[PASCAL,FAR] (HP,I,J,LPPALE)
  1224.      INTEGER*2 HP,I,J
  1225.      STRUCTURE /PALE/
  1226.         INTEGER*2 X(2)
  1227.      END STRUCTURE
  1228.      RECORD /PALE/ LPPALE [REFERENCE,FAR]
  1229.       END
  1230.       INTERFACE TO FUNCTION SetPaletteEntries[PASCAL,FAR]
  1231.      *                                                   (HP,I,J,LPPALE)
  1232.      INTEGER*2 SetPaletteEntries,HP,I,J
  1233.      STRUCTURE /PALE/
  1234.         INTEGER*2 X(2)
  1235.      END STRUCTURE
  1236.      RECORD /PALE/ LPPALE [REFERENCE,FAR]
  1237.       END
  1238.       INTERFACE TO FUNCTION GetPaletteEntries[PASCAL,FAR]
  1239.      *                                                   (HP,I,J,LPPALE)
  1240.      INTEGER*2 GetPaletteEntries,HP,I,J
  1241.      STRUCTURE /PALE/
  1242.         INTEGER*2 X(2)
  1243.      END STRUCTURE
  1244.      RECORD /PALE/ LPPALE [REFERENCE,FAR]
  1245.       END
  1246.       INTERFACE TO FUNCTION GetNearestPaletteIndex[PASCAL,FAR] (HP,I)
  1247.      INTEGER*2 GetNearestPaletteIndex,HP
  1248.      INTEGER*4 I
  1249.       END
  1250.       INTERFACE TO FUNCTION ResizePalette[PASCAL,FAR] (HP,I)
  1251.      INTEGER*2 ResizePalette,HP,I
  1252.       END
  1253.       INTERFACE TO FUNCTION GetSystemPaletteEntries[PASCAL,FAR]
  1254.      *                                                  (HDC,I,J,LPPALE)
  1255.      INTEGER*2 GetSystemPaletteEntries,HDC,I,J
  1256.      STRUCTURE /PALE/
  1257.         INTEGER*2 X(2)
  1258.      END STRUCTURE
  1259.      RECORD /PALE/ LPPALE [REFERENCE,FAR]
  1260.       END
  1261.       INTERFACE TO FUNCTION GetSystemPaletteUse[PASCAL,FAR] (HDC,I)
  1262.      INTEGER*2 GetSystemPaletteUse,HDC,I
  1263.       END
  1264.       INTERFACE TO FUNCTION SetSystemPaletteUse[PASCAL,FAR] (HDC,I)
  1265.      INTEGER*2 SetSystemPaletteUse,HDC,I
  1266.       END
  1267. $ENDIF ! NOGDI
  1268.  
  1269. C
  1270. C USER Section
  1271. C
  1272. $IF DEFINED(USER)
  1273. !!int FAR PASCAL wvsprintf(LPSTR,LPSTR,LPSTR);
  1274. !!int FAR cdecl wsprintf(LPSTR,LPSTR,...);
  1275.  
  1276. $IF DEFINED(WINMESSAGES)
  1277.       INTERFACE TO FUNCTION RegisterWindowMessage[PASCAL,FAR] (LS)
  1278.      INTEGER*2 RegisterWindowMessage
  1279.      CHARACTER*(*) LS [REFERENCE,FAR]
  1280.       END
  1281. $ENDIF ! NOWINMESSAGES
  1282.  
  1283. $IF DEFINED(MSG)
  1284. C
  1285. C Message Function Templates
  1286. C
  1287.       INTERFACE TO FUNCTION GetMessage[PASCAL,FAR] (LPMSG,HW,I,J)
  1288.      INTEGER*2 GetMessage,HW,I,J
  1289.      STRUCTURE /MSG/
  1290.         INTEGER*2 X(9)
  1291.      END STRUCTURE
  1292.      RECORD /MSG/ LPMSG [FAR,REFERENCE]
  1293.       END
  1294.       INTERFACE TO FUNCTION TranslateMessage[PASCAL,FAR] (LPMSG)
  1295.      INTEGER*2 TranslateMessage
  1296.      STRUCTURE /MSG/
  1297.         INTEGER*2 X(9)
  1298.      END STRUCTURE
  1299.      RECORD /MSG/ LPMSG [FAR,REFERENCE]
  1300.       END
  1301.       INTERFACE TO FUNCTION DispatchMessage[PASCAL,FAR] (LPMSG)
  1302.      INTEGER*4 DispatchMessage
  1303.      STRUCTURE /MSG/
  1304.         INTEGER*2 X(9)
  1305.      END STRUCTURE
  1306.      RECORD /MSG/ LPMSG [FAR,REFERENCE]
  1307.       END
  1308.       INTERFACE TO FUNCTION PeekMessage[PASCAL,FAR] (LPMSG,HW,I,J,K)
  1309.      INTEGER*2 PeekMessage,HW,I,J,K
  1310.      STRUCTURE /MSG/
  1311.         INTEGER*2 X(9)
  1312.      END STRUCTURE
  1313.      RECORD /MSG/ LPMSG [FAR,REFERENCE]
  1314.       END
  1315. $ENDIF ! NOMSG
  1316.  
  1317. !REPLACE DEINITION OF NOLSTRING etc
  1318.  
  1319. $IF DEFINED(LSTRING)
  1320. !!int         FAR PASCAL lstrcmp( LPSTR, LPSTR );
  1321. !!int         FAR PASCAL lstrcmpi( LPSTR, LPSTR );
  1322. !!LPSTR       FAR PASCAL lstrcpy( LPSTR, LPSTR );
  1323. !!LPSTR       FAR PASCAL lstrcat( LPSTR, LPSTR );
  1324. !!int         FAR PASCAL lstrlen( LPSTR );
  1325. $ENDIF ! NOLSTRING
  1326.  
  1327. $IF DEFINED(LFILEIO)
  1328. !%int         FAR PASCAL _lopen( LPSTR, int );
  1329. !%int         FAR PASCAL _lclose( int );
  1330. !%int         FAR PASCAL _lcreat( LPSTR, int );
  1331. !%LONG        FAR PASCAL _llseek( int, long, int );
  1332. !%WORD        FAR PASCAL _lread( int, LPSTR, int );
  1333. !%WORD        FAR PASCAL _lwrite( int, LPSTR, int );
  1334. $ENDIF ! NOLFILEIO
  1335.  
  1336.       INTERFACE TO FUNCTION ExitWindows[PASCAL,FAR] (I,J)
  1337.      INTEGER*2 ExitWindows,J
  1338.      INTEGER*4 I
  1339.       END
  1340.       INTERFACE TO FUNCTION SwapMouseButton[PASCAL,FAR] (I)
  1341.      INTEGER*2 SwapMouseButton,I
  1342.       END
  1343.       INTERFACE TO FUNCTION GetMessagePos[PASCAL,FAR] ()
  1344.      INTEGER*4 GetMessagePos
  1345.       END
  1346.       INTERFACE TO FUNCTION GetMessageTime[PASCAL,FAR] ()
  1347.      INTEGER*4 GetMessageTime
  1348.       END
  1349.       INTERFACE TO FUNCTION GetSysModalWindow[PASCAL,FAR] ()
  1350.      INTEGER*2 GetSysModalWindow
  1351.       END
  1352.       INTERFACE TO FUNCTION SetSysModalWindow[PASCAL,FAR] (HW)
  1353.      INTEGER*2 SetSysModalWindow,HW
  1354.       END
  1355.       INTERFACE TO FUNCTION SendMessage[PASCAL,FAR] (HW,I,J,K)
  1356.      INTEGER*4 SendMessage
  1357.      INTEGER*2 HW,I,J
  1358.      INTEGER*4 K
  1359.       END
  1360.       INTERFACE TO FUNCTION PostMessage[PASCAL,FAR] (HW,I,J,K)
  1361.      INTEGER*2 PostMessage,HW,I,J
  1362.      INTEGER*4 K
  1363.       END
  1364.       INTERFACE TO FUNCTION PostAppMessage[PASCAL,FAR] (H,I,J,K)
  1365.      INTEGER*2 PostAppMessage,H,I,J
  1366.      INTEGER*4 K
  1367.       END
  1368.       INTERFACE TO SUBROUTINE ReplyMessage[PASCAL,FAR] (I)
  1369.      INTEGER*4 I
  1370.       END
  1371.       INTERFACE TO SUBROUTINE WaitMessage[PASCAL,FAR]
  1372.       END
  1373.       INTERFACE TO FUNCTION DefWindowProc[PASCAL,FAR] (HW,I,J,K)
  1374.      INTEGER*4 DefWindowProc,K
  1375.      INTEGER*2 HW,I,J
  1376.       END
  1377.       INTERFACE TO SUBROUTINE PostQuitMessage[PASCAL,FAR] (I)
  1378.      INTEGER*2 I
  1379.       END
  1380.       INTERFACE TO FUNCTION CallWindowProc[PASCAL,FAR] (FP,HW,I,J,K)
  1381.      INTEGER*4 CallWindowProc,K
  1382.      EXTERNAL FP [REFERENCE,FAR]
  1383.      INTEGER*2 HW,I,J
  1384.       END
  1385.       INTERFACE TO FUNCTION InSendMessage[PASCAL,FAR] ()
  1386.      INTEGER*2 InSendMessage
  1387.       END
  1388.       INTERFACE TO FUNCTION GetDoubleClickTime[PASCAL,FAR] ()
  1389.      INTEGER*2 GetDoubleClickTime
  1390.       END
  1391.       INTERFACE TO SUBROUTINE SetDoubleClickTime[PASCAL,FAR] (I)
  1392.      INTEGER*2 I
  1393.       END
  1394.       INTERFACE TO FUNCTION RegisterClass[PASCAL,FAR] (LPWNDCLASS)
  1395.      INTEGER*2 RegisterClass
  1396.      STRUCTURE /WNDCLASS/
  1397.         INTEGER*2 X(13)
  1398.      END STRUCTURE
  1399.      RECORD /WNDCLASS/ LPWNDCLASS [FAR,REFERENCE]
  1400.       END
  1401.       INTERFACE TO FUNCTION UnregisterClass[PASCAL,FAR] (LS,H)
  1402.      INTEGER*2 UnregisterClass,H
  1403.      CHARACTER*(*) LS [REFERENCE,FAR]
  1404.       END
  1405.       INTERFACE TO FUNCTION GetClassInfo[PASCAL,FAR] (H,LS,LPWC)
  1406.      INTEGER*2 GetClassInfo,H
  1407.      CHARACTER*(*) LS [REFERENCE,FAR]
  1408.      STRUCTURE /WC/
  1409.         INTEGER*2 X(13)
  1410.      END STRUCTURE
  1411.      RECORD /WC/ LPWC [REFERENCE,FAR]
  1412.       END
  1413.       INTERFACE TO FUNCTION SetMessageQueue[PASCAL,FAR] (I)
  1414.      INTEGER*2 SetMessageQueue,I
  1415.       END
  1416.       INTERFACE TO FUNCTION CreateWindow[PASCAL,FAR]
  1417.      *                                   (LS1,LS2,M,I,J,K,L,HW,HM,H,LS3)
  1418.      INTEGER*2 CreateWindow,I,J,K,L,HW,HM,H
  1419.      CHARACTER*(*) LS1 [FAR,REFERENCE]
  1420.      CHARACTER*(*) LS2 [FAR,REFERENCE]
  1421.      INTEGER*4 M
  1422.      CHARACTER*(*) LS3 [FAR,REFERENCE]
  1423.       END
  1424.       INTERFACE TO FUNCTION CreateWindowEx[PASCAL,FAR]
  1425.      *                                 (I,LS1,LS2,J,K,L,M,N,HW,HM,H,LS3)
  1426.      INTEGER*2 CreateWindowEx,K,L,M,N,HW,HM,H
  1427.      INTEGER*4 I,J
  1428.      CHARACTER*(*) LS1 [FAR,REFERENCE]
  1429.      CHARACTER*(*) LS2 [FAR,REFERENCE]
  1430.      CHARACTER*(*) LS3 [FAR,REFERENCE]
  1431.       END
  1432.       INTERFACE TO FUNCTION IsWindow[PASCAL,FAR] (H)
  1433.      INTEGER*2 IsWindow,H
  1434.       END
  1435.       INTERFACE TO FUNCTION IsChild[PASCAL,FAR] (H1,H2)
  1436.      INTEGER*2 IsChild,H1,H2
  1437.       END
  1438.       INTERFACE TO FUNCTION DestroyWindow[PASCAL,FAR] (H)
  1439.      INTEGER*2 DestroyWindow,H
  1440.       END
  1441.       INTERFACE TO FUNCTION ShowWindow[PASCAL,FAR] (H,I)
  1442.      INTEGER*2 ShowWindow,H,I
  1443.       END
  1444.       INTERFACE TO FUNCTION FlashWindow[PASCAL,FAR] (H,I)
  1445.      INTEGER*2 FlashWindow,H,I
  1446.       END
  1447.       INTERFACE TO SUBROUTINE ShowOwnedPopups[PASCAL,FAR] (H,I)
  1448.      INTEGER*2 H,I
  1449.       END
  1450.       INTERFACE TO FUNCTION OpenIcon[PASCAL,FAR] (H)
  1451.      INTEGER*2 OpenIcon,H
  1452.       END
  1453.       INTERFACE TO SUBROUTINE CloseWindow[PASCAL,FAR] (HW)
  1454.      INTEGER*2 HW
  1455.       END
  1456.       INTERFACE TO SUBROUTINE MoveWindow[PASCAL,FAR] (HW1,HW2,I,J,K,L,M)
  1457.      INTEGER*2 HW1,HW2,I,J,K,L,M
  1458.       END
  1459.       INTERFACE TO SUBROUTINE SetWindowPos[PASCAL,FAR]
  1460.      *                                               (HW1,HW2,I,J,K,L,M)
  1461.      INTEGER*2 HW1,HW2,I,J,K,L,M
  1462.       END
  1463.  
  1464. $IF DEFINED(DEFERWINDOWPOS)
  1465.       INTERFACE TO FUNCTION BeginDeferWindowPos[PASCAL,FAR] (N)
  1466.      INTEGER*2 BeginDeferWindowPos,N
  1467.       END
  1468.       INTERFACE TO FUNCTION DeferWindowPos[PASCAL,FAR]
  1469.      *                                              (I,HW,J,X,Y,CX,CY,F)
  1470.      INTEGER*2 DeferWindowPos,I,HW,J
  1471.      INTEGER*2 X,Y,CX,CY,F
  1472.       END
  1473.       INTERFACE TO SUBROUTINE EndDeferWindowPos[PASCAL,FAR] (I)
  1474.      INTEGER*2 I
  1475.       END
  1476. $ENDIF ! NODEFERWINDOWPOS
  1477.  
  1478.       INTERFACE TO FUNCTION IsWindowVisible[PASCAL,FAR] (H)
  1479.      INTEGER*2 IsWindowVisible,H
  1480.       END
  1481.       INTERFACE TO FUNCTION IsIconic[PASCAL,FAR] (H)
  1482.      INTEGER*2 IsIconic,H
  1483.       END
  1484.       INTERFACE TO FUNCTION AnyPopup[PASCAL,FAR] ()
  1485.      INTEGER*2 AnyPopup
  1486.       END
  1487.       INTERFACE TO SUBROUTINE BringWindowToTop[PASCAL,FAR] (H)
  1488.      INTEGER*2 H
  1489.       END
  1490.       INTERFACE TO FUNCTION IsZoomed[PASCAL,FAR] (H)
  1491.      INTEGER*2 IsZoomed,H
  1492.       END
  1493.  
  1494. $IF DEFINED(CTLMGR)
  1495.       INTERFACE TO FUNCTION CreateDialog[PASCAL,FAR] (H,LS,HW,FP)
  1496.      INTEGER*2 CreateDialog,H,HW
  1497.      CHARACTER*(*) LS [REFERENCE,FAR]
  1498.      EXTERNAL FP [REFERENCE,FAR]
  1499.       END
  1500.       INTERFACE TO FUNCTION CreateDialogIndirect[PASCAL,FAR]
  1501.      *                                                      (H,LS,HW,FP)
  1502.      INTEGER*2 CreateDialogIndirect,H,HW
  1503.      CHARACTER*(*) LS [REFERENCE,FAR]
  1504.      EXTERNAL FP [REFERENCE,FAR]
  1505.       END
  1506.       INTERFACE TO FUNCTION CreateDialogParam[PASCAL,FAR] (H,LS,HW,FP,I)
  1507.      INTEGER*2 CreateDialogParam,H,HW
  1508.      CHARACTER*(*) LS [REFERENCE,FAR]
  1509.      EXTERNAL FP [REFERENCE,FAR]
  1510.      INTEGER*4 I
  1511.       END
  1512.       INTERFACE TO FUNCTION CreateDialogIndirectParam[PASCAL,FAR]
  1513.      *                                                    (H,LS,HW,FP,I)
  1514.      INTEGER*2 CreateDialogIndirectParam,H,HW
  1515.      CHARACTER*(*) LS [REFERENCE,FAR]
  1516.      EXTERNAL FP [REFERENCE,FAR]
  1517.      INTEGER*4 I
  1518.       END
  1519.       INTERFACE TO FUNCTION DialogBox[PASCAL,FAR] (H,LS,HW,FP)
  1520.      INTEGER*2 DialogBox,H,HW
  1521.      CHARACTER*(*) LS [FAR,REFERENCE]
  1522.      INTEGER*4 FP
  1523.       END
  1524.       INTERFACE TO FUNCTION DialogBoxIndirect[PASCAL,FAR] (H1,H2,HW,FP)
  1525.      INTEGER*2 DialogBoxIndirect,H1,H2,HW
  1526.      EXTERNAL FP [REFERENCE,FAR]
  1527.       END
  1528.       INTERFACE TO FUNCTION DialogBoxParam[PASCAL,FAR] (H,LS,HW,FP,I)
  1529.      INTEGER*2 DialogBoxParam,H,HW
  1530.      CHARACTER*(*) LS [REFERENCE,FAR]
  1531.      EXTERNAL FP [REFERENCE,FAR]
  1532.      INTEGER*4 I
  1533.       END
  1534.       INTERFACE TO FUNCTION DialogBoxIndirectParam[PASCAL,FAR]
  1535.      *                                                   (H1,H2,HW,FP,I)
  1536.      INTEGER*2 DialogBoxIndirectParam,H1,H2,HW
  1537.      EXTERNAL FP [REFERENCE,FAR]
  1538.      INTEGER*4 I
  1539.       END
  1540.       INTERFACE TO SUBROUTINE EndDialog [PASCAL,FAR] (HW,I)
  1541.      INTEGER*2 HW,I
  1542.       END
  1543.       INTERFACE TO FUNCTION GetDlgItem[PASCAL,FAR] (HW,I)
  1544.      integer*2 GetDlgItem,HW,I
  1545.       END
  1546.       INTERFACE TO SUBROUTINE SetDlgItemInt[PASCAL,FAR] (HW,I,J,K)
  1547.      INTEGER*2 HW,I,J,K
  1548.       END
  1549.       INTERFACE TO FUNCTION GetDlgItemInt[PASCAL,FAR] (HW,I,J,K)
  1550.      INTEGER*2 GetDlgItemInt,HW,I,K
  1551.      INTEGER*2 J [REFERENCE,FAR]
  1552.       END
  1553.       INTERFACE TO SUBROUTINE SetDlgItemText[PASCAL,FAR] (HW,I,LS)
  1554.      INTEGER*2 HW,I
  1555.      CHARACTER*(*) LS [REFERENCE,FAR]
  1556.       END
  1557.       INTERFACE TO FUNCTION GetDlgItemText[PASCAL,FAR] (HW,I,LS,J)
  1558.      INTEGER*2 GetDlgItemText,HW,I,J
  1559.      CHARACTER*(*) LS [REFERENCE,FAR]
  1560.       END
  1561.       INTERFACE TO SUBROUTINE CheckDlgButton[PASCAL,FAR] (HW,I,J)
  1562.      INTEGER*2 HW,I,J
  1563.       END
  1564.       INTERFACE TO SUBROUTINE CheckRadioButton[PASCAL,FAR] (HW,I,J,K)
  1565.      INTEGER*2 HW,I,J,K
  1566.       END
  1567.       INTERFACE TO FUNCTION IsDlgButtonChecked[PASCAL,FAR] (HW,I)
  1568.      INTEGER*2 IsDlgButtonChecked,HW,I
  1569.       END
  1570.       INTERFACE TO FUNCTION SendDlgItemMessage[PASCAL,FAR] (HW,I,J,K,L)
  1571.      INTEGER*4 SendDlgItemMessage,L
  1572.      INTEGER*2 I,J,K
  1573.       END
  1574.       INTERFACE TO FUNCTION GetNextDlgGroupItem[PASCAL,FAR] (HW,H,I)
  1575.      INTEGER*2 GetNextDlgGroupItem,HW,H,I
  1576.       END
  1577.       INTERFACE TO FUNCTION GetNextDlgTabItem[PASCAL,FAR] (HW,H,I)
  1578.      INTEGER*2 GetNextDlgTabItem,HW,H,I
  1579.       END
  1580.       INTERFACE TO FUNCTION GetDlgCtrlID[PASCAL,FAR] (HW)
  1581.      INTEGER*2 GetDlgCtrlID,HW
  1582.       END
  1583.       INTERFACE TO FUNCTION GetDialogBaseUnits[PASCAL,FAR] ()
  1584.      INTEGER*4 GetDialogBaseUnits
  1585.       END
  1586.       INTERFACE TO FUNCTION DefDlgProc[PASCAL,FAR] (HW,I,J,K)
  1587.      INTEGER*4 DefDlgProc,K
  1588.      INTEGER*2 HW,I,J
  1589.       END
  1590. $ENDIF ! NOCTLMGR
  1591.  
  1592. $IF DEFINED(MSG)
  1593.       INTERFACE TO FUNCTION CallMsgFilter[PASCAL,FAR] (LPMSG,I)
  1594.      INTEGER*2 CallMsgFilter,I
  1595.      CHARACTER*(*) LPMSG [REFERENCE,FAR]
  1596.       END
  1597. $ENDIF
  1598.  
  1599. $IF DEFINED(CLIPBOARD)
  1600. C
  1601. C Clipboard Manager Functions
  1602. C
  1603.       INTERFACE TO FUNCTION OpenClipboard[PASCAL,FAR] (HW)
  1604.      INTEGER*2 OpenClipboard,HW
  1605.       END
  1606.       INTERFACE TO FUNCTION CloseClipboard[PASCAL,FAR] ()
  1607.      INTEGER*2 CloseClipboard
  1608.       END
  1609.       INTERFACE TO FUNCTION GetClipboardOwner[PASCAL,FAR] ()
  1610.      INTEGER*2 GetClipboardOwner
  1611.       END
  1612.       INTERFACE TO FUNCTION SetClipboardViewer[PASCAL,FAR] (HW)
  1613.      INTEGER*2 SetClipboardViewer,HW
  1614.       END
  1615.       INTERFACE TO FUNCTION GetClipboardViewer[PASCAL,FAR] ()
  1616.      INTEGER*2 GetClipboardViewer
  1617.       END
  1618.       INTERFACE TO FUNCTION ChangeClipboardChain[PASCAL,FAR] (HW,H)
  1619.      INTEGER*2 ChangeClipboardChain,HW,H
  1620.       END
  1621.       INTERFACE TO FUNCTION SetClipboardData[PASCAL,FAR] (I,H)
  1622.      INTEGER*2 SetClipboardData,I,H
  1623.       END
  1624.       INTERFACE TO FUNCTION GetClipboardData[PASCAL,FAR] (I)
  1625.      INTEGER*2 GetClipboardData,I
  1626.       END
  1627.       INTERFACE TO FUNCTION RegisterClipboardFormat[PASCAL,FAR] (LS)
  1628.      INTEGER*2 RegisterClipboardFormat
  1629.      CHARACTER*(*) LS [REFERENCE,FAR]
  1630.       END
  1631.       INTERFACE TO FUNCTION CountClipboardFormats[PASCAL,FAR] ()
  1632.      INTEGER*2 CountClipboardFormats
  1633.       END
  1634.       INTERFACE TO FUNCTION EnumClipboardFormats[PASCAL,FAR] (I)
  1635.      INTEGER*2 EnumClipboardFormats,I
  1636.       END
  1637.       INTERFACE TO FUNCTION GetClipboardFormatName[PASCAL,FAR] (I,LS,J)
  1638.      INTEGER*2 GetClipboardFormatName,I,J
  1639.      CHARACTER*(*) LS [REFERENCE,FAR]
  1640.       END
  1641.       INTERFACE TO FUNCTION EmptyClipboard[PASCAL,FAR] ()
  1642.      INTEGER*2 EmptyClipboard
  1643.       END
  1644.       INTERFACE TO FUNCTION IsClipboardFormatAvailable[PASCAL,FAR] (I)
  1645.      INTEGER*2 IsClipboardFormatAvailable,I
  1646.       END
  1647.       INTERFACE TO FUNCTION GetPriorityClipboardFormat[PASCAL,FAR] (I,J)
  1648.      INTEGER*2 GetPriorityClipboardFormat,J
  1649.      INTEGER*2 I [REFERENCE,FAR]
  1650.       END
  1651. $ENDIF ! NOCLIPBOARD
  1652.  
  1653.       INTERFACE TO FUNCTION SetFocus[PASCAL,FAR] (HW)
  1654.      INTEGER*2 SetFocus,HW
  1655.       END
  1656.       INTERFACE TO FUNCTION GetFocus[PASCAL,FAR] ()
  1657.      INTEGER*2 GetFocus
  1658.       END
  1659.       INTERFACE TO FUNCTION GetActiveWindow[PASCAL,FAR] ()
  1660.      INTEGER*2 GetActiveWindow
  1661.       END
  1662.       INTERFACE TO FUNCTION GetKeyState[PASCAL,FAR] (I)
  1663.      INTEGER*2 GetKeyState,I
  1664.       END
  1665.       INTERFACE TO FUNCTION GetAsyncKeyState[PASCAL,FAR] (I)
  1666.      INTEGER*2 GetAsyncKeyState,I
  1667.       END
  1668.       INTERFACE TO SUBROUTINE GetKeyboardState[PASCAL,FAR] (B)
  1669.      BYTE B [REFERENCE,FAR]
  1670.       END
  1671.       INTERFACE TO SUBROUTINE SetKeyboardState[PASCAL,FAR] (B)
  1672.      BYTE B [REFERENCE,FAR]
  1673.       END
  1674.       INTERFACE TO FUNCTION EnableHardwareInput[PASCAL,FAR] (I)
  1675.      INTEGER*2 EnableHardwareInput,I
  1676.       END
  1677.       INTERFACE TO FUNCTION GetInputState[PASCAL,FAR] ()
  1678.      INTEGER*2 GetInputState
  1679.       END
  1680.       INTERFACE TO FUNCTION GetCapture[PASCAL,FAR] ()
  1681.      INTEGER*2 GetCapture
  1682.       END
  1683.       INTERFACE TO FUNCTION SetCapture[PASCAL,FAR] (HW)
  1684.      INTEGER*2 SetCapture,HW
  1685.       END
  1686.       INTERFACE TO SUBROUTINE ReleaseCapture[PASCAL,FAR] ()
  1687.       END
  1688. C
  1689. C Windows Functions
  1690. C
  1691.       INTERFACE TO FUNCTION SetTimer[PASCAL,FAR] (HW,I,J,FP)
  1692.      INTEGER*2 SetTimer,HW,I,J
  1693.      INTEGER*4 FP
  1694.       END
  1695.       INTERFACE TO FUNCTION KillTimer[PASCAL,FAR] (HW,I)
  1696.      INTEGER*2 KillTimer,HW,I
  1697.       END
  1698.       INTERFACE TO FUNCTION EnableWindow[PASCAL,FAR] (HW,I)
  1699.      INTEGER*2 EnableWindow,HW,I
  1700.       END
  1701.       INTERFACE TO FUNCTION IsWindowEnabled[PASCAL,FAR] (HW)
  1702.      INTEGER*2 IsWindowEnabled,HW
  1703.       END
  1704.  
  1705.       INTERFACE TO FUNCTION LoadAccelerators[PASCAL,FAR] (H,LS)
  1706.          INTEGER*2 LoadAccelerators,H
  1707.          CHARACTER*(*) LS [REFERENCE,FAR]
  1708.       END
  1709.  
  1710. $IF DEFINED(MSG)
  1711.       INTERFACE TO FUNCTION TranslateAccelerator[PASCAL,FAR] (HW,H,MSG)
  1712.          INTEGER*2 TranslateAccelerator,HW,H
  1713.          STRUCTURE /M/
  1714.             INTEGER*2 X(9)
  1715.          END STRUCTURE
  1716.          RECORD /M/ MSG [REFERENCE,FAR]
  1717.       END
  1718. $ENDIF
  1719.  
  1720. $IF DEFINED(SYSMETRICS)
  1721.       INTERFACE TO FUNCTION GetSystemMetrics[PASCAL,FAR] (I)
  1722.      INTEGER*2 GetSystemMetrics,I
  1723.       END
  1724. $ENDIF ! NOSYSMETRICS
  1725.  
  1726. $IF DEFINED(MENUS)
  1727.       INTERFACE TO FUNCTION LoadMenu[PASCAL,FAR] (H,LS)
  1728.      INTEGER*2 LoadMenu,H
  1729.      CHARACTER*(*) LS [REFERENCE,FAR]
  1730.       END
  1731.       INTERFACE TO FUNCTION LoadMenuIndirect[PASCAL,FAR] (LS)
  1732.      INTEGER*2 LoadMenuIndirect
  1733.      CHARACTER*(*) LS [REFERENCE,FAR]
  1734.       END
  1735.       INTERFACE TO FUNCTION GetMenu[PASCAL,FAR] (HW)
  1736.      INTEGER*2 GetMenu,HW
  1737.       END
  1738.       INTERFACE TO FUNCTION SetMenu[PASCAL,FAR] (HW,HM)
  1739.      INTEGER*2 SetMenu,HW,HM
  1740.       END
  1741.       INTERFACE TO FUNCTION ChangeMenu[PASCAL,FAR] (HM,I,LS,J,K)
  1742.      INTEGER*2 ChangeMenu,HM,I,J,K
  1743.      CHARACTER*(*) LS [REFERENCE,FAR]
  1744.       END
  1745.       INTERFACE TO FUNCTION HiliteMenuItem[PASCAL,FAR] (HW,HM,I,J)
  1746.      INTEGER*2 HiliteMenuItem,HW,HM,I,J
  1747.       END
  1748.       INTERFACE TO FUNCTION GetMenuString[PASCAL,FAR] (HM,I,LS,J,K)
  1749.      INTEGER*2 GetMenuString,HM,I,J,K
  1750.      CHARACTER*(*) LS [REFERENCE,FAR]
  1751.       END
  1752.       INTERFACE TO FUNCTION GetMenuState[PASCAL,FAR] (HM,I,J)
  1753.      INTEGER*2 GetMenuState,HM,I,J
  1754.       END
  1755.       INTERFACE TO SUBROUTINE DrawMenuBar[PASCAL,FAR] (HW)
  1756.      INTEGER*2 HW
  1757.       END
  1758.       INTERFACE TO FUNCTION GetSystemMenu[PASCAL,FAR] (HW,I)
  1759.      INTEGER*2 GetSystemMenu,HW,I
  1760.       END
  1761.       INTERFACE TO FUNCTION CreateMenu[PASCAL,FAR] ()
  1762.      INTEGER*2 CreateMenu
  1763.       END
  1764.       INTERFACE TO FUNCTION CreatePopupMenu[PASCAL,FAR] ()
  1765.      INTEGER*2 CreatePopupMenu
  1766.       END
  1767.       INTERFACE TO FUNCTION DestroyMenu[PASCAL,FAR] (HM)
  1768.      INTEGER*2 DestroyMenu,HM
  1769.       END
  1770.       INTERFACE TO FUNCTION CheckMenuItem[PASCAL,FAR] (HM,I,J)
  1771.      INTEGER*2 CheckMenuItem,HM,I,J
  1772.       END
  1773.       INTERFACE TO FUNCTION EnableMenuItem[PASCAL,FAR] (HM,I,J)
  1774.      INTEGER*2 EnableMenuItem,HM,I,J
  1775.       END
  1776.       INTERFACE TO FUNCTION GetSubMenu[PASCAL,FAR] (HM,I)
  1777.      INTEGER*2 GetSubMenu,HM,I
  1778.       END
  1779.       INTERFACE TO FUNCTION GetMenuItemID[PASCAL,FAR] (HM,I)
  1780.      INTEGER*2 GetMenuItemID,HM,I
  1781.       END
  1782.       INTERFACE TO FUNCTION GetMenuItemCount[PASCAL,FAR] (HM)
  1783.      INTEGER*2 GetMenuItemCount,HM
  1784.       END
  1785.       INTERFACE TO FUNCTION InsertMenu[PASCAL,FAR] (HM,I,J,K,LS)
  1786.      INTEGER*2 InsertMenu,HM,I,J,K
  1787.      CHARACTER*(*) LS [REFERENCE,FAR]
  1788.       END
  1789.       INTERFACE TO FUNCTION AppendMenu[PASCAL,FAR] (HM,I,J,LS)
  1790.      INTEGER*2 AppendMenu,HM,I,J
  1791.      CHARACTER*(*) LS [REFERENCE,FAR]
  1792.       END
  1793.       INTERFACE TO FUNCTION ModifyMenu[PASCAL,FAR] (HM,I,J,K,LS)
  1794.      INTEGER*2 ModifyMenu,HM,I,J,K
  1795.      CHARACTER*(*) LS [REFERENCE,FAR]
  1796.       END
  1797.       INTERFACE TO FUNCTION RemoveMenu[PASCAL,FAR] (HM,I,J)
  1798.      INTEGER*2 RemoveMenu,HM,I,J
  1799.       END
  1800.       INTERFACE TO FUNCTION DeleteMenu[PASCAL,FAR] (HM,I,J)
  1801.      INTEGER*2 DeleteMenu,HM,I,J
  1802.       END
  1803.       INTERFACE TO FUNCTION SetMenuItemBitmaps[PASCAL,FAR]
  1804.      *                                                   (HM,I,J,HB,HB2)
  1805.      INTEGER*2 SetMenuItemBitmaps,HM,I,J,HB,HB2
  1806.       END
  1807.       INTERFACE TO FUNCTION GetMenuCheckMarkDimensions[PASCAL,FAR] ()
  1808.      INTEGER*4 GetMenuCheckMarkDimensions
  1809.       END
  1810.       INTERFACE TO FUNCTION TrackPopupMenu[PASCAL,FAR] (HM,I,J,K,L,HW,R)
  1811.      INTEGER*2 TrackPopupMenu,HM,I,J,K,L,HW
  1812.      STRUCTURE /RECT/
  1813.         INTEGER*2 X(4)
  1814.      END STRUCTURE
  1815.      RECORD /RECT/ R [REFERENCE,FAR]
  1816.       END
  1817. $ENDIF ! NOMENUS
  1818.  
  1819.       INTERFACE TO FUNCTION GrayString[PASCAL,FAR]
  1820.      *                                           (HDC,HB,FP,I,J,K,L,M,N)
  1821.      INTEGER*2 GrayString,HDC,HB,J,K,L,M,N
  1822.      INTEGER*4 I
  1823.      EXTERNAL FP [REFERENCE,FAR]
  1824.       END
  1825.       INTERFACE TO SUBROUTINE UpdateWindow[PASCAL,FAR] (HW)
  1826.      INTEGER*2 HW
  1827.       END
  1828.       INTERFACE TO FUNCTION SetActiveWindow[PASCAL,FAR] (HW)
  1829.      INTEGER*2 SetActiveWindow,HW
  1830.       END
  1831.       INTERFACE TO FUNCTION BeginPaint[PASCAL,FAR] (HW,PS)
  1832.      INTEGER*2 BeginPaint,HW
  1833.      STRUCTURE /PSS/
  1834.         INTEGER*2 X(16)
  1835.      END STRUCTURE
  1836.      RECORD /PSS/ PS [REFERENCE,FAR]
  1837.       END
  1838.       INTERFACE TO SUBROUTINE EndPaint[PASCAL,FAR] (HW,PS)
  1839.      INTEGER*2 HW
  1840.      STRUCTURE /PSS/
  1841.         INTEGER*2 X(16)
  1842.      END STRUCTURE
  1843.      RECORD /PSS/ PS [REFERENCE,FAR]
  1844.       END
  1845.       INTERFACE TO FUNCTION GetUpdateRect[PASCAL,FAR] (HW,R,I)
  1846.      INTEGER*2 GetUpdateRect,HW,I
  1847.      STRUCTURE /RECT/
  1848.         INTEGER*2 X(4)
  1849.      END STRUCTURE
  1850.      RECORD /RECT/ R [REFERENCE,FAR]
  1851.       END
  1852.       INTERFACE TO FUNCTION GetUpdateRgn[PASCAL,FAR] (HW,HR,I)
  1853.      INTEGER*2 GetUpdateRgn,HW,HR,I
  1854.       END
  1855.       INTERFACE TO FUNCTION ExcludeUpdateRgn[PASCAL,FAR] (HDC,HW)
  1856.      INTEGER*2 ExcludeUpdateRgn,HDC,HW
  1857.       END
  1858.       INTERFACE TO SUBROUTINE InvalidateRect[PASCAL,FAR] (HW,R,I)
  1859.      INTEGER*2 HW,I
  1860.      STRUCTURE /RECT/
  1861.         INTEGER*2 X(4)
  1862.      END STRUCTURE
  1863.      RECORD /RECT/ R [REFERENCE,FAR]
  1864.       END
  1865. C CHECK THIS OUT... ITS ANOTHER ADDRESS PASSING INTERFACE
  1866.       INTERFACE TO SUBROUTINE InvalidateRect_A[PASCAL,FAR,
  1867.      *                                  ALIAS:"INVALIDATERECT"] (HW,R,I)
  1868.      INTEGER*2 HW,I
  1869.      INTEGER*4 R
  1870.       END
  1871.       INTERFACE TO SUBROUTINE ValidateRect[PASCAL,FAR] (HW,R)
  1872.      INTEGER*2 HW
  1873.      STRUCTURE /RECT/
  1874.         INTEGER*2 X(4)
  1875.      END STRUCTURE
  1876.      RECORD /RECT/ R [REFERENCE,FAR]
  1877.       END
  1878.       INTERFACE TO SUBROUTINE ValidateRect_A[PASCAL,FAR,
  1879.      *                                      ALIAS:"VALIDATERECT"] (HW,R)
  1880.      INTEGER*2 HW
  1881.      INTEGER*4 R
  1882.       END
  1883.       INTERFACE TO SUBROUTINE InvalidateRgn[PASCAL,FAR] (HW,HR,I)
  1884.      INTEGER*2 HW,HR,I
  1885.       END
  1886.       INTERFACE TO FUNCTION ValidateRgn[PASCAL,FAR] (HW,HR)
  1887.      INTEGER*2 HW,HR
  1888.       END
  1889.       INTERFACE TO SUBROUTINE ScrollWindow[PASCAL,FAR]
  1890.      *                                                (HW,I,J,LPR1,LPR2)
  1891.      INTEGER*2 HW,I,J
  1892.      STRUCTURE /RECT/
  1893.         INTEGER*2 X(4)
  1894.      END STRUCTURE
  1895.      RECORD /RECT/ LPR1 [REFERENCE,FAR]
  1896.      RECORD /RECT/ LPR2 [REFERENCE,FAR]
  1897.       END
  1898.       INTERFACE TO SUBROUTINE ScrollWindow_A[PASCAL,FAR,
  1899.      *                          ALIAS:"SCROLLWINDOW"] (HW,I,J,LPR1,LPR2)
  1900.      INTEGER*2 HW,I,J
  1901.      INTEGER*4 LPR1
  1902.      INTEGER*4 LPR2
  1903.       END
  1904.       INTERFACE TO FUNCTION ScrollDC[PASCAL,FAR]
  1905.      *                                       (HDC,I,J,LPR1,LPR2,HR,LPR3)
  1906.      INTEGER*2 ScrollDC,HDC,I,J,HR
  1907.      STRUCTURE /RECT/
  1908.         INTEGER*2 X(4)
  1909.      END STRUCTURE
  1910.      RECORD /RECT/ LPR1 [REFERENCE,FAR]
  1911.      RECORD /RECT/ LPR2 [REFERENCE,FAR]
  1912.      RECORD /RECT/ LPR3 [REFERENCE,FAR]
  1913.       END
  1914.       INTERFACE TO FUNCTION ScrollDC_A[PASCAL,FAR,ALIAS:"SCROLLDC"]
  1915.      *                                       (HDC,I,J,LPR1,LPR2,HR,LPR3)
  1916.      INTEGER*2 ScrollDC_A,HDC,I,J,HR
  1917.      INTEGER*4 LPR1
  1918.      INTEGER*4 LPR2
  1919.      INTEGER*4 LPR3
  1920.       END
  1921.  
  1922. $IF DEFINED(SCROLL)
  1923.       INTERFACE TO FUNCTION SetScrollPos[PASCAL,FAR] (HW,I,J,K)
  1924.      INTEGER*2 SetScrollPos,HW,I,J,K
  1925.       END
  1926.       INTERFACE TO FUNCTION GetScrollPos[PASCAL,FAR] (HW,I)
  1927.      INTEGER*2 GetScrollPos,HW,I
  1928.       END
  1929.       INTERFACE TO SUBROUTINE SetScrollRange[PASCAL,FAR] (HW,I,J,K,L)
  1930.      INTEGER*2 HW,I,J,K,L
  1931.       END
  1932.       INTERFACE TO FUNCTION GetScrollRange[PASCAL,FAR] (HW,I,J,K)
  1933.      INTEGER*2 GetScrollRange,HW,I
  1934.      INTEGER*2 J [REFERENCE,FAR], K [REFERENCE,FAR]
  1935.       END
  1936.       INTERFACE TO FUNCTION ShowScrollBar[PASCAL,FAR] (HW,I,J)
  1937.      INTEGER*2 ShowScrollBar,HW,I,J
  1938.       END
  1939. $ENDIF
  1940.  
  1941.       INTERFACE TO FUNCTION SetProp[PASCAL,FAR] (HW,LS,H)
  1942.      INTEGER*2 SetProp,HW,H
  1943.      CHARACTER*(*) LS [REFERENCE,FAR]
  1944.       END
  1945.       INTERFACE TO FUNCTION SetProp_A[PASCAL,FAR,ALIAS:"SETPROP"]
  1946.      *                                                         (HW,LS,H)
  1947.      INTEGER*2 SetProp_A,HW,H
  1948.      INTEGER*4 LS
  1949.       END
  1950.       INTERFACE TO FUNCTION GetProp[PASCAL,FAR] (HW,LS)
  1951.      INTEGER*2 GetProp,HW
  1952.      CHARACTER*(*) LS [REFERENCE,FAR]
  1953.       END
  1954.       INTERFACE TO FUNCTION GetProp_A[PASCAL,FAR,ALIAS:"GETPROP"]
  1955.      *                                                           (HW,LS)
  1956.      INTEGER*2 GetProp_A,HW
  1957.      INTEGER*4 LS
  1958.       END
  1959.       INTERFACE TO FUNCTION RemoveProp[PASCAL,FAR] (HW,LS)
  1960.      INTEGER*2 RemoveProp,HW
  1961.      INTEGER*4 LS
  1962.       END
  1963.       INTERFACE TO FUNCTION EnumProps[PASCAL,FAR] (HW,FP)
  1964.      INTEGER*2 EnumProps,HW
  1965.      EXTERNAL FP [REFERENCE,FAR]
  1966.       END
  1967.       INTERFACE TO SUBROUTINE SetWindowText[PASCAL,FAR] (HW,LS)
  1968.      INTEGER*2 HW
  1969.      CHARACTER*(*) LS [REFERENCE,FAR]
  1970.       END
  1971.       INTERFACE TO FUNCTION GetWindowText[PASCAL,FAR] (HW,LS,I)
  1972.      INTEGER*2 GetWindowText,HW,I
  1973.      CHARACTER*(*) LS [REFERENCE,FAR]
  1974.       END
  1975.       INTERFACE TO FUNCTION GetWindowTextLength[PASCAL,FAR] (HW)
  1976.      INTEGER*2 GetWindowTextLength,HW
  1977.       END
  1978.       INTERFACE TO SUBROUTINE GetClientRect[PASCAL,FAR] (HW,R)
  1979.      INTEGER*2 HW
  1980.      STRUCTURE /RECT/
  1981.         INTEGER*2 X(4)
  1982.      END STRUCTURE
  1983.      RECORD /RECT/ R [REFERENCE,FAR]
  1984.       END
  1985.       INTERFACE TO SUBROUTINE GetWindowRect[PASCAL,FAR] (HW,R)
  1986.      INTEGER*2 HW
  1987.      STRUCTURE /RECT/
  1988.         INTEGER*2 X(4)
  1989.      END STRUCTURE
  1990.      RECORD /RECT/ R [REFERENCE,FAR]
  1991.       END
  1992.       INTERFACE TO SUBROUTINE AdjustWindowRect[PASCAL,FAR] (R,I,J)
  1993.      STRUCTURE /RECT/
  1994.         INTEGER*2 X(4)
  1995.      END STRUCTURE
  1996.      RECORD /RECT/ R [REFERENCE,FAR]
  1997.      INTEGER*4 I
  1998.      INTEGER*2 J
  1999.       END
  2000.       INTERFACE TO SUBROUTINE AdjustWindowRectEx[PASCAL,FAR] (R,I,J,K)
  2001.      STRUCTURE /RECT/
  2002.         INTEGER*2 X(4)
  2003.      END STRUCTURE
  2004.      RECORD /RECT/ R [REFERENCE,FAR]
  2005.      INTEGER*4 I
  2006.      INTEGER*2 J
  2007.      INTEGER*4 K
  2008.       END
  2009. $IF DEFINED(MB)
  2010.       INTERFACE TO FUNCTION MessageBox[PASCAL,FAR] (HW,LS1,LS2,I)
  2011.      INTEGER*2 MessageBox,HW
  2012.      CHARACTER*(*) LS1 [REFERENCE,FAR]
  2013.      CHARACTER*(*) LS2 [REFERENCE,FAR]
  2014.      INTEGER*2 I
  2015.       END
  2016.       INTERFACE TO SUBROUTINE MessageBeep[PASCAL,FAR] (I)
  2017.      INTEGER*2 I
  2018.       END
  2019. $ENDIF ! NOMB
  2020.  
  2021.       INTERFACE TO FUNCTION ShowCursor[PASCAL,FAR] (I)
  2022.      INTEGER*2 ShowCursor,i
  2023.       END
  2024.       INTERFACE TO SUBROUTINE SetCursorPos[PASCAL,FAR] (I,J)
  2025.      INTEGER*2 I,J
  2026.       END
  2027.       INTERFACE TO FUNCTION SetCursor[PASCAL,FAR] (H)
  2028.      INTEGER*2 SetCursor,H
  2029.       END
  2030.       INTERFACE TO SUBROUTINE GetCursorPos[PASCAL,FAR] (P)
  2031.      STRUCTURE /PNT/
  2032.         INTEGER*2 X(2)
  2033.      END STRUCTURE
  2034.      RECORD /PNT/ P [REFERENCE,FAR]
  2035.       END
  2036.       INTERFACE TO SUBROUTINE ClipCursor[PASCAL,FAR] (LPR)
  2037.      STRUCTURE /RECT/
  2038.         INTEGER*2 X(4)
  2039.      END STRUCTURE
  2040.      RECORD /RECT/ LPR [REFERENCE,FAR]
  2041.       END
  2042.       INTERFACE TO SUBROUTINE CreateCaret[PASCAL,FAR] (HW,HB,I,J)
  2043.      INTEGER*2 HW,HB,I,J
  2044.       END
  2045.       INTERFACE TO FUNCTION GetCaretBlinkTime[PASCAL,FAR] ()
  2046.      INTEGER*2 GetCaretBlinkTime
  2047.       END
  2048.       INTERFACE TO SUBROUTINE SetCaretBlinkTime[PASCAL,FAR] (I)
  2049.      INTEGER*2 I
  2050.       END
  2051.       INTERFACE TO SUBROUTINE DestroyCaret[PASCAL,FAR] ()
  2052.       END
  2053.       INTERFACE TO SUBROUTINE HideCaret[PASCAL,FAR] (HW)
  2054.      INTEGER*2 HW
  2055.       END
  2056.       INTERFACE TO SUBROUTINE ShowCaret[PASCAL,FAR] (HW)
  2057.      INTEGER*2 HW
  2058.       END
  2059.       INTERFACE TO SUBROUTINE SetCaretPos[PASCAL,FAR] (I,J)
  2060.      INTEGER*2 I,J
  2061.       END
  2062.       INTERFACE TO SUBROUTINE GetCaretPos[PASCAL,FAR] (P)
  2063.      STRUCTURE /PNT/
  2064.         INTEGER*2 X(2)
  2065.      END STRUCTURE
  2066.      RECORD /PNT/ P [REFERENCE,FAR]
  2067.       END
  2068.       INTERFACE TO SUBROUTINE ClientToScreen[PASCAL,FAR] (HW,P)
  2069.      INTEGER*2 HW
  2070.      STRUCTURE /PNT/
  2071.         INTEGER*2 X(2)
  2072.      END STRUCTURE
  2073.      RECORD /PNT/ P [REFERENCE,FAR]
  2074.       END
  2075.       INTERFACE TO SUBROUTINE ScreenToClient[PASCAL,FAR] (HW,P)
  2076.      INTEGER*2 HW
  2077.      STRUCTURE /PNT/
  2078.         INTEGER*2 X(2)
  2079.      END STRUCTURE
  2080.      RECORD /PNT/ P [REFERENCE,FAR]
  2081.       END
  2082.       INTERFACE TO FUNCTION WindowFromPoint[PASCAL,FAR] (PNT)
  2083.      INTEGER*2 WindowFromPoint
  2084.      STRUCTURE /PT/
  2085.         INTEGER*2 X(2)
  2086.      END STRUCTURE
  2087.      RECORD /PT/ PNT !?
  2088.       END
  2089.       INTERFACE TO FUNCTION ChildWindowFromPoint[PASCAL,FAR] (HW,PNT)
  2090.      INTEGER*2 ChildWindowFromPoint,HW
  2091.      STRUCTURE /PT/
  2092.         INTEGER*2 X(2)
  2093.      END STRUCTURE
  2094.      RECORD /PT/ PNT !?
  2095.       END
  2096.  
  2097. $IF DEFINED(COLOR)
  2098.       INTERFACE TO FUNCTION GetSysColor[PASCAL,FAR] (I)
  2099.      INTEGER*4 GetSysColor
  2100.      INTEGER*2 I
  2101.       END
  2102.       INTERFACE TO SUBROUTINE SetSysColors[PASCAL,FAR] (I,J,K)
  2103.          INTEGER*2 I
  2104.          INTEGER*2 J [REFERENCE,FAR]
  2105.          INTEGER*4 K [REFERENCE,FAR]
  2106.       END
  2107. $ENDIF ! NOCOLOR
  2108.  
  2109.       INTERFACE TO FUNCTION FillRgn[PASCAL,FAR] (HDC,HR,HB)
  2110.      INTEGER*2 FillRgn,HDC,HR,HB
  2111.       END
  2112.       INTERFACE TO FUNCTION FrameRgn[PASCAL,FAR] (HDC,HR,HB,I,J)
  2113.      INTEGER*2 FrameRgn,HDC,HR,HB,I,J
  2114.       END
  2115.       INTERFACE TO FUNCTION InvertRgn[PASCAL,FAR] (HDC,HR)
  2116.      INTEGER*2 InvertRgn,HDC,HR
  2117.       END
  2118.       INTERFACE TO FUNCTION PaintRgn[PASCAL,FAR] (HDC,HR)
  2119.      INTEGER*2 PaintRgn,HDC,HR
  2120.       END
  2121.       INTERFACE TO FUNCTION PtInRegion[PASCAL,FAR] (HR,I,J)
  2122.      INTEGER*2 PtInRegion,HR,I,J
  2123.       END
  2124.       INTERFACE TO SUBROUTINE DrawFocusRect[PASCAL,FAR] (HDC,R)
  2125.      INTEGER*2 HDC
  2126.      STRUCTURE /RECT/
  2127.         INTEGER*2 X(4)
  2128.      END STRUCTURE
  2129.      RECORD /RECT/ R [REFERENCE,FAR]
  2130.       END
  2131.       INTERFACE TO FUNCTION FillRect[PASCAL,FAR] (HDC,R,HB)
  2132.      INTEGER*2 FillRect,HDC,HB
  2133.      STRUCTURE /RECT/
  2134.         INTEGER*2 X(4)
  2135.      END STRUCTURE
  2136.      RECORD /RECT/ R [REFERENCE,FAR]
  2137.       END
  2138.       INTERFACE TO FUNCTION FrameRect[PASCAL,FAR] (HDC,R,HB)
  2139.      INTEGER*2 FrameRect,HDC,HB
  2140.      STRUCTURE /RECT/
  2141.         INTEGER*2 X(4)
  2142.      END STRUCTURE
  2143.      RECORD /RECT/ R [REFERENCE,FAR]
  2144.       END
  2145.       INTERFACE TO SUBROUTINE InvertRect[PASCAL,FAR] (HDC,R)
  2146.      INTEGER*2 HDC
  2147.      STRUCTURE /RECT/
  2148.         INTEGER*2 X(4)
  2149.      END STRUCTURE
  2150.      RECORD /RECT/ R [REFERENCE,FAR]
  2151.       END
  2152.       INTERFACE TO SUBROUTINE SetRect[PASCAL,FAR] (R,I,J,K,L)
  2153.      INTEGER*2 I,J,K,L
  2154.      STRUCTURE /RECT/
  2155.         INTEGER*2 X(4)
  2156.      END STRUCTURE
  2157.      RECORD /RECT/ R [REFERENCE,FAR]
  2158.       END
  2159.       INTERFACE TO SUBROUTINE SetRectEmpty[PASCAL,FAR] (R)
  2160.      STRUCTURE /RECT/
  2161.         INTEGER*2 X(4)
  2162.      END STRUCTURE
  2163.      RECORD /RECT/ R [REFERENCE,FAR]
  2164.       END
  2165.       INTERFACE TO FUNCTION CopyRect[PASCAL,FAR] (LPR1,LPR2)
  2166.      INTEGER*2 CopyRect
  2167.      STRUCTURE /RECT/
  2168.         INTEGER*2 X(4)
  2169.      END STRUCTURE
  2170.      RECORD /RECT/ LPR1 [REFERENCE,FAR]
  2171.      RECORD /RECT/ LPR2 [REFERENCE,FAR]
  2172.       END
  2173.       INTERFACE TO FUNCTION InflateRect[PASCAL,FAR] (LPR,I,J)
  2174.      STRUCTURE /RECT/
  2175.         INTEGER*2 X(4)
  2176.      END STRUCTURE
  2177.      RECORD /RECT/ LPR [REFERENCE,FAR]
  2178.      INTEGER*2 I,J
  2179.       END
  2180.       INTERFACE TO FUNCTION IntersectRect[PASCAL,FAR] (LPR1,LPR2,LPR3)
  2181.      INTEGER*2 IntersectRect
  2182.      STRUCTURE /RECT/
  2183.         INTEGER*2 X(4)
  2184.      END STRUCTURE
  2185.      RECORD /RECT/ LPR1 [REFERENCE,FAR]
  2186.      RECORD /RECT/ LPR2 [REFERENCE,FAR]
  2187.      RECORD /RECT/ LPR3 [REFERENCE,FAR]
  2188.       END
  2189.       INTERFACE TO FUNCTION UnionRect[PASCAL,FAR] (LPR1,LPR2,LPR3)
  2190.      INTEGER*2 UnionRect
  2191.      STRUCTURE /RECT/
  2192.         INTEGER*2 X(4)
  2193.      END STRUCTURE
  2194.      RECORD /RECT/ LPR1 [REFERENCE,FAR]
  2195.      RECORD /RECT/ LPR2 [REFERENCE,FAR]
  2196.      RECORD /RECT/ LPR3 [REFERENCE,FAR]
  2197.       END
  2198.       INTERFACE TO SUBROUTINE OffsetRect[PASCAL,FAR] (LPR,I,J)
  2199.      INTEGER*2 I,J
  2200.      STRUCTURE /RECT/
  2201.         INTEGER*2 X(4)
  2202.      END STRUCTURE
  2203.      RECORD /RECT/ LPR [REFERENCE,FAR]
  2204.       END
  2205.       INTERFACE TO FUNCTION IsRectEmpty[PASCAL,FAR] (LPR)
  2206.      INTEGER*2 IsRectEmpty
  2207.      STRUCTURE /RECT/
  2208.         INTEGER*2 X(4)
  2209.      END STRUCTURE
  2210.      RECORD /RECT/ LPR [REFERENCE,FAR]
  2211.       END
  2212.       INTERFACE TO FUNCTION EqualRect[PASCAL,FAR] (LPR1,LPR2)
  2213.      INTEGER*2 EqualRect
  2214.      STRUCTURE /RECT/
  2215.         INTEGER*2 X(4)
  2216.      END STRUCTURE
  2217.      RECORD /RECT/ LPR1 [REFERENCE,FAR]
  2218.      RECORD /RECT/ LPR2 [REFERENCE,FAR]
  2219.       END
  2220.       INTERFACE TO FUNCTION PtInRect[PASCAL,FAR] (LPR,PNT)
  2221.      INTEGER*2 PtInRect
  2222.      STRUCTURE /RECT/
  2223.         INTEGER*2 X(4)
  2224.      END STRUCTURE
  2225.      RECORD /RECT/ LPR [REFERENCE,FAR]
  2226.      STRUCTURE /PT/
  2227.         INTEGER*2 X(2)
  2228.      END STRUCTURE
  2229.      RECORD /PT/ PNT ! ?
  2230.       END
  2231.       INTERFACE TO FUNCTION RectVisible[PASCAL,FAR] (HDC, LPR)
  2232.      INTEGER*2 RectVisible,HDC
  2233.      STRUCTURE /RECT/
  2234.         INTEGER*2 X(4)
  2235.      END STRUCTURE
  2236.      RECORD /RECT/ LPR [REFERENCE,FAR]
  2237.       END
  2238.       INTERFACE TO FUNCTION RectInRegion[PASCAL,FAR] (HR,LPR)
  2239.      INTEGER*2 RectInRegion,HR
  2240.      STRUCTURE /RECT/
  2241.         INTEGER*2 X(4)
  2242.      END STRUCTURE
  2243.      RECORD /RECT/ LPR [REFERENCE,FAR]
  2244.       END
  2245.       INTERFACE TO FUNCTION GetCurrentTime[PASCAL,FAR] ()
  2246.      INTEGER*4 GetCurrentTime
  2247.       END
  2248.       INTERFACE TO FUNCTION GetTickCount[PASCAL,FAR] ()
  2249.      INTEGER*4 GetTickCount
  2250.       END
  2251.  
  2252. $IF DEFINED(WINOFFSETS)
  2253.       INTERFACE TO FUNCTION GetWindowWord[PASCAL,FAR] (HW,I)
  2254.      INTEGER*2 GetWindowWord,HW,I
  2255.       END
  2256.       INTERFACE TO FUNCTION SetWindowWord[PASCAL,FAR] (HW,I,J)
  2257.      INTEGER*2 SetWindowWord,HW,I,J
  2258.       END
  2259.       INTERFACE TO FUNCTION GetWindowLong[PASCAL,FAR] (HW,I)
  2260.      INTEGER*4 GetWindowLong,I
  2261.      INTEGER*2 HW
  2262.       END
  2263.       INTERFACE TO FUNCTION SetWindowLong[PASCAL,FAR] (HW,I,J)
  2264.      INTEGER*4 SetWindowLong,I,J
  2265.      INTEGER*2 HW
  2266.       END
  2267.       INTERFACE TO FUNCTION GetClassWord[PASCAL,FAR] (HW,I)
  2268.      INTEGER*2 GetClassWord,HW,I
  2269.       END
  2270.       INTERFACE TO FUNCTION SetClassWord[PASCAL,FAR] (HW,I,J)
  2271.      INTEGER*2 SetClassWord,HW,I,J
  2272.       END
  2273.       INTERFACE TO FUNCTION GetClassLong[PASCAL,FAR] (HW,I)
  2274.      INTEGER*4 GetClassLong,I
  2275.      INTEGER*2 HW
  2276.       END
  2277.       INTERFACE TO FUNCTION SetClassLong[PASCAL,FAR] (HW,I,J)
  2278.      INTEGER*4 SetClassLong,I,J
  2279.      INTEGER*2 HW
  2280.       END
  2281.       INTERFACE TO FUNCTION GetDesktopHwnd[PASCAL,FAR] ()
  2282.      INTEGER*2 GetDesktopHwnd
  2283.       END
  2284.       INTERFACE TO FUNCTION GetDesktopWindow[PASCAL,FAR] ()
  2285.      INTEGER*2 GetDesktopWindow
  2286.       END
  2287. $ENDIF ! NOWINOFFSETS
  2288.  
  2289.       INTERFACE TO FUNCTION GetParent[PASCAL,FAR] (HW)
  2290.      INTEGER*2 GetParent,HW
  2291.       END
  2292.       INTERFACE TO FUNCTION SetParent[PASCAL,FAR] (HW1,HW2)
  2293.      INTEGER*2 SetParent,HW1,HW2
  2294.       END
  2295.       INTERFACE TO FUNCTION EnumChildWindows[PASCAL,FAR] (HW,FP,I)
  2296.      INTEGER*2 EnumChildWindows,HW
  2297.      EXTERNAL FP [REFERENCE,FAR]
  2298.      INTEGER*4 I
  2299.       END
  2300.       INTERFACE TO FUNCTION FindWindow[PASCAL,FAR] (LS1,LS2)
  2301.      INTEGER*2 FindWindow
  2302.      CHARACTER*(*) LS1 [REFERENCE,FAR]
  2303.      CHARACTER*(*) LS2 [REFERENCE,FAR]
  2304.       END
  2305.       INTERFACE TO FUNCTION EnumWindows[PASCAL,FAR] (FP,I)
  2306.      INTEGER*2 EnumWindows
  2307.      EXTERNAL FP [REFERENCE,FAR]
  2308.      INTEGER*4 I
  2309.       END
  2310.       INTERFACE TO FUNCTION EnumTaskWindows[PASCAL,FAR] (H,FP,I)
  2311.      INTEGER*2 EnumTaskWindows,H
  2312.      EXTERNAL FP [REFERENCE,FAR]
  2313.      INTEGER*4 I
  2314.       END
  2315.       INTERFACE TO FUNCTION GetClassName[PASCAL,FAR] (HW,LS,I)
  2316.      INTEGER*2 GetClassName,HW,I
  2317.      CHARACTER*(*) LS [REFERENCE,FAR]
  2318.       END
  2319.       INTERFACE TO FUNCTION GetTopWindow[PASCAL,FAR] (HW)
  2320.      INTEGER*2 GetTopWindow,HW
  2321.       END
  2322.       INTERFACE TO FUNCTION GetNextWindow[PASCAL,FAR] (HW,I)
  2323.      INTEGER*2 GetNextWindow,HW,I
  2324.       END
  2325.       INTERFACE TO FUNCTION GetWindowTask[PASCAL,FAR] (HW)
  2326.      INTEGER*2 GetWindowTask,HW
  2327.       END
  2328.       INTERFACE TO FUNCTION GetLastActivePopup[PASCAL,FAR] (HW)
  2329.      INTEGER*2 GetLastActivePopup,HW
  2330.       END
  2331.       INTERFACE TO FUNCTION GetWindow[PASCAL,FAR] (HW,I)
  2332.      INTEGER*2 GetWindow,HW,I
  2333.       END
  2334.  
  2335. $IF DEFINED(WH)
  2336.       INTERFACE TO FUNCTION SetWindowsHook[PASCAL,FAR] (I,FP)
  2337.      INTEGER*4 SetWindowsHook
  2338.      INTEGER*2 I
  2339.      EXTERNAL FP [REFERENCE,FAR]
  2340.       END
  2341.       INTERFACE TO FUNCTION UnhookWindowsHook[PASCAL,FAR] (I,FP)
  2342.      INTEGER*2 UnhookWindowsHook,I
  2343.      EXTERNAL FP [REFERENCE,FAR]
  2344.       END
  2345.       INTERFACE TO FUNCTION DefHookProc[PASCAL,FAR] (I,J,K,FP)
  2346.      INTEGER*2 DefHookProc,I,J
  2347.      INTEGER*4 K
  2348.      EXTERNAL FP [REFERENCE,FAR]
  2349.       END
  2350. $ENDIF ! NOWH
  2351.  
  2352. C
  2353. C Resource Loading Routines
  2354. C
  2355.       INTERFACE TO FUNCTION LoadBitmap[PASCAL,FAR] (H,LS)
  2356.      INTEGER*2 LoadBitmap,H
  2357.      CHARACTER*(*) LS [REFERENCE,FAR]
  2358.       END
  2359.       INTERFACE TO FUNCTION LoadCursor[PASCAL,FAR] (H,LS)
  2360.      INTEGER*2 LoadCursor,H
  2361.      CHARACTER*(*) LS [REFERENCE,FAR]
  2362.       END
  2363.       INTERFACE TO FUNCTION LoadCursor_A[PASCAL,FAR] (H,LS)
  2364.      INTEGER*2 LoadCursor_A [ALIAS:"LOADCURSOR"]
  2365.      INTEGER*2 H
  2366.      INTEGER*4 LS
  2367.       END
  2368.       INTERFACE TO FUNCTION CreateCursor[PASCAL,FAR] (H,I,J,K,L,ABP,XBP)
  2369.      INTEGER*2 CreateCursor,H,I,J,K,L
  2370.      BYTE ABP [REFERENCE,FAR] (*), XBP [REFERENCE,FAR] (*)
  2371.       END
  2372.       INTERFACE TO FUNCTION DestroyCursor[PASCAL,FAR] (H)
  2373.      INTEGER*2 DestroyCursor,H
  2374.       END
  2375.       INTERFACE TO FUNCTION LoadIcon[PASCAL,FAR] (H,LS)
  2376.      INTEGER*2 LoadIcon,H
  2377.      CHARACTER*(*) LS [FAR,REFERENCE]
  2378.       END
  2379.       INTERFACE TO FUNCTION CreateIcon[PASCAL,FAR] (H,I,J,K,L,ABP,XBP)
  2380.      INTEGER*2 CreateIcon,H,I,J
  2381.      BYTE K,L
  2382.      BYTE ABP [REFERENCE,FAR] (*), XBP [REFERENCE,FAR] (*)
  2383.       END
  2384.       INTERFACE TO FUNCTION DestroyIcon[PASCAL,FAR] (H)
  2385.      INTEGER*2 DestroyIcon,H
  2386.       END
  2387. C$ WHERE IS $ENDIF ! NOICONS, WHICH HOULD BE HERE?
  2388.       INTERFACE TO FUNCTION LoadString[PASCAL,FAR] (H,I,LS,J)
  2389.      INTEGER*2 LoadString,H,I,J
  2390.      CHARACTER*(*) LS [REFERENCE,FAR]
  2391.       END
  2392.       INTERFACE TO FUNCTION AddFontResource[PASCAL,FAR] (LS)
  2393.      INTEGER*2 AddFontResource
  2394.      CHARACTER*(*) LS [REFERENCE,FAR]
  2395.       END
  2396.       INTERFACE TO FUNCTION RemoveFontResource[PASCAL,FAR] (LS)
  2397.      INTEGER*2 RemoveFontResource
  2398.      CHARACTER*(*) LS [REFERENCE,FAR]
  2399.       END
  2400.  
  2401. $IF DEFINED(KANJI)
  2402.       INTERFACE TO FUNCTION ConvertRequest[PASCAL,FAR] (HW,LPKS)
  2403.      INTEGER*2 ConvertRequest,HW
  2404.      STRUCTURE /KS/
  2405.         INTEGER*2 X(11)
  2406.      END STRUCTURE
  2407.      RECORD /KS/ LPKS [REFERENCE,FAR]
  2408.       END
  2409.       INTERFACE TO FUNCTION SetConvertParams[PASCAL,FAR] (I,J)
  2410.      INTEGER*2 SetConvertParams,I,J
  2411.       END
  2412.       INTERFACE TO SUBROUTINE SetConvertHook[PASCAL,FAR] (I)
  2413.      INTEGER*2 I
  2414.       END
  2415. $ENDIF ! NOKANJI
  2416.  
  2417. C
  2418. C Key Conversion Window, undocumented function
  2419. C
  2420.       INTERFACE TO FUNCTION IsTwoByteCharPrefix[PASCAL,FAR] (CHAR)
  2421.      INTEGER*2 IsTwoByteCharPrefix
  2422.      CHARACTER CHAR
  2423.       END
  2424.  
  2425. $IF DEFINED(CTLMGR)
  2426. C
  2427. C Control Manager Definitions
  2428. C
  2429. $IF DEFINED(MSG)
  2430.       INTERFACE TO FUNCTION IsDialogMessage[PASCAL,FAR] (HW,LPMSG)
  2431.      INTEGER*2 IsDialogMessage,HW
  2432.      STRUCTURE /MSG/
  2433.         INTEGER*2 X(9)
  2434.      END STRUCTURE
  2435.      RECORD /MSG/ LPMSG [REFERENCE,FAR]
  2436.       END
  2437. $ENDIF ! NOMSG
  2438.  
  2439.       INTERFACE TO FUNCTION MapDialogRect[PASCAL,FAR] (HW,LPR)
  2440.      INTEGER*2 MapDialogRect,HW
  2441.      STRUCTURE /RECT/
  2442.         INTEGER*2 X(4)
  2443.      END STRUCTURE
  2444.      RECORD /RECT/ LPR [REFERENCE,FAR]
  2445.       END
  2446.       INTERFACE TO FUNCTION DlgDirList[PASCAL,FAR] (HW,LS,I,J,K)
  2447.      INTEGER*2 DlgDirList,HW,I,J,K
  2448.      CHARACTER*(*) LS [REFERENCE,FAR]
  2449.       END
  2450.       INTERFACE TO FUNCTION DlgDirSelect[PASCAL,FAR] (HW,LS,I)
  2451.      INTEGER*2 DlgDirSelect,HW,I
  2452.      CHARACTER*(*) LS [REFERENCE,FAR]
  2453.       END
  2454.       INTERFACE TO FUNCTION DlgDirListComboBox[PASCAL,FAR] (HW,LS,I,J,K)
  2455.      INTEGER*2 DlgDirListComboBox,HW,I,J,K
  2456.      CHARACTER*(*) LS [REFERENCE,FAR]
  2457.       END
  2458.       INTERFACE TO FUNCTION DlgDirSelectComboBox[PASCAL,FAR] (HW,LS,I)
  2459.      INTEGER*2 DlgDirSelectComboBox,HW,I
  2460.      CHARACTER*(*) LS [REFERENCE,FAR]
  2461.       END
  2462. $ENDIF ! NOCTLMSG
  2463.  
  2464. $IF DEFINED(SOUND)
  2465.       INTERFACE TO FUNCTION OpenSound[PASCAL,FAR] ()
  2466.      INTEGER*2 OpenSound
  2467.       END
  2468.       INTERFACE TO SUBROUTINE CloseSound[PASCAL,FAR] ()
  2469.       END
  2470.       INTERFACE TO FUNCTION SetVoiceQueueSize[PASCAL,FAR] (I,J)
  2471.      INTEGER*2 SetVoiceQueueSize,I,J
  2472.       END
  2473.       INTERFACE TO FUNCTION SetVoiceNote[PASCAL,FAR] (I,J,K,L)
  2474.      INTEGER*2 SetVoiceNote,I,J,K,L
  2475.       END
  2476.       INTERFACE TO FUNCTION SetVoiceAccent[PASCAL,FAR] (I,J,K,L,M)
  2477.      INTEGER*2 SetVoiceAccent,I,J,K,L,M
  2478.       END
  2479.       INTERFACE TO FUNCTION SetVoiceEnvelope[PASCAL,FAR] (I,J,K)
  2480.      INTEGER*2 SetVoiceEnvelope,I,J,K
  2481.       END
  2482.       INTERFACE TO FUNCTION SetSoundNoise[PASCAL,FAR] (I,J)
  2483.      INTEGER*2 SetSoundNoise,I,J
  2484.       END
  2485.       INTERFACE TO FUNCTION SetVoiceSound[PASCAL,FAR] (I,J,K)
  2486.      INTEGER*2 SetVoiceSound,I,K
  2487.      INTEGER*4 J
  2488.       END
  2489.       INTERFACE TO FUNCTION StartSound[PASCAL,FAR] ()
  2490.      INTEGER*2 StartSound
  2491.       END
  2492.       INTERFACE TO FUNCTION StopSound[PASCAL,FAR] ()
  2493.      INTEGER*2 StopSound
  2494.       END
  2495.       INTERFACE TO FUNCTION WaitSoundState[PASCAL,FAR] (I)
  2496.      INTEGER*2 WaitSoundState,I
  2497.       END
  2498.       INTERFACE TO FUNCTION SyncAllVoices[PASCAL,FAR] ()
  2499.      INTEGER*2 SyncAllVoices
  2500.       END
  2501.       INTERFACE TO FUNCTION CountVoiceNotes[PASCAL,FAR] (I)
  2502.      INTEGER*2 CountVoiceNotes
  2503.       END
  2504.       INTERFACE TO FUNCTION GetThresholdEvent[PASCAL,FAR] ()
  2505.      INTEGER*4 GetThresholdEvent ! Pointer to integer
  2506.       END
  2507.       INTERFACE TO FUNCTION GetThresholdStatus[PASCAL,FAR] ()
  2508.      INTEGER*2 GetThresholdStatus
  2509.       END
  2510.       INTERFACE TO FUNCTION SetVoiceThreshold[PASCAL,FAR] (I,J)
  2511.      INTEGER*2 SetVoiceThreshold,I,J
  2512.       END
  2513. $ENDIF ! NOSOUND
  2514.  
  2515. $IF DEFINED(COMM)
  2516.       INTERFACE TO FUNCTION OpenComm[PASCAL,FAR] (LS,I,J)
  2517.          INTEGER*2 OpenComm,I,J
  2518.          CHARACTER*(*) LS [REFERENCE,FAR]
  2519.       END
  2520.       INTERFACE TO FUNCTION SetCommState[PASCAL,FAR] (DC)
  2521.          INTEGER*2 SetCommState
  2522.          STRUCTURE /DCB/
  2523.             BYTE X(38)
  2524.          END STRUCTURE
  2525.          RECORD /DCB/ DC [REFERENCE,FAR]
  2526.       END
  2527.       INTERFACE TO FUNCTION GetCommState[PASCAL,FAR] (I,DC)
  2528.          INTEGER*2 GetCommState,I
  2529.          STRUCTURE /DCB/
  2530.             BYTE X(38)
  2531.          END STRUCTURE
  2532.          RECORD /DCB/ DC [REFERENCE,FAR]
  2533.       END
  2534.       INTERFACE TO FUNCTION ReadComm[PASCAL,FAR] (I,LS,J)
  2535.          INTEGER*2 ReadComm,I,J
  2536.          CHARACTER*(*) LS [REFERENCE,FAR]
  2537.       END
  2538.       INTERFACE TO FUNCTION UngetCommChar[PASCAL,FAR] (I,C)
  2539.          INTEGER*2 UngetCommChar,I
  2540.          CHARACTER*(*) C
  2541.       END
  2542.       INTERFACE TO FUNCTION WriteComm[PASCAL,FAR] (I,LS,J)
  2543.          INTEGER*2 WriteComm,I,J
  2544.          CHARACTER*(*) LS [REFERENCE,FAR]
  2545.       END
  2546.       INTERFACE TO FUNCTION CloseComm[PASCAL,FAR] (I)
  2547.          INTEGER*2 CloseComm,I
  2548.       END
  2549.       INTERFACE TO FUNCTION GetCommError[PASCAL,FAR] (I,CM)
  2550.          INTEGER*2 GetCommError,I
  2551.          STRUCTURE /CMS/
  2552.             BYTE X(11)
  2553.          END STRUCTURE
  2554.          RECORD /CMS/ CM [REFERENCE,FAR]
  2555.       END
  2556.       INTERFACE TO FUNCTION BuildCommDCB[PASCAL,FAR] (LS,DC)
  2557.          INTEGER*2 BuildCommDCB
  2558.          CHARACTER*(*) LS [REFERENCE,FAR]
  2559.          STRUCTURE /DCB/
  2560.             BYTE X(38)
  2561.          END STRUCTURE
  2562.          RECORD /DCB/ DC [REFERENCE,FAR]
  2563.       END
  2564.       INTERFACE TO FUNCTION TransmitCommChar[PASCAL,FAR] (I,C)
  2565.          INTEGER*2 TransmitCommChar,I
  2566.          CHARACTER*(*) C
  2567.       END
  2568.       INTERFACE TO FUNCTION FAR PASCAL SetCommEventMask[PASCAL,FAR]
  2569.      *                                                             (I,J)
  2570.          INTEGER*2 FAR PASCAL SetCommEventMask,I,J
  2571.       END
  2572.       INTERFACE TO FUNCTION GetCommEventMask[PASCAL,FAR] (I,J)
  2573.          INTEGER*2 GetCommEventMask,I,J
  2574.       END
  2575.       INTERFACE TO FUNCTION SetCommBreak[PASCAL,FAR] (I)
  2576.          INTEGER*2 SetCommBreak,I
  2577.       END
  2578.       INTERFACE TO FUNCTION ClearCommBreak[PASCAL,FAR] (I)
  2579.          INTEGER*2 ClearCommBreak,I
  2580.       END
  2581.       INTERFACE TO FUNCTION FlushComm[PASCAL,FAR] (I,J)
  2582.          INTEGER*2 FlushComm,I,J
  2583.       END
  2584.       INTERFACE TO FUNCTION EscapeCommFunction[PASCAL,FAR] (I,J)
  2585.          INTEGER*2 EscapeCommFunction,I,J
  2586.       END
  2587. $ENDIF ! NOCOMM
  2588.  
  2589. $IF DEFINED(MDI)
  2590.       INTERFACE TO FUNCTION DefFrameProc[PASCAL,FAR] (HW1,HW2,I,J,K)
  2591.          INTEGER*4 DefFrameProc,K
  2592.          INTEGER*2 HW1,HW2,I,J
  2593.       END
  2594.       INTERFACE TO FUNCTION DefMDIChildProc(HW,I,J,K)
  2595.          INTEGER*4 DefMDIChildProc,K
  2596.          INTEGER*2 HW,I,J
  2597.       END
  2598.  
  2599. $IF DEFINED(MSG)
  2600.       INTERFACE TO FUNCTION TranslateMDISysAccel(HW,MSG)
  2601.          INTEGER*2 TranslateMDISysAccel,HW
  2602.          STRUCTURE /M/
  2603.             INTEGER X(9)
  2604.          END STRUCTURE
  2605.          RECORD /M/ MSG [REFERENCE,FAR]
  2606.       END
  2607. $ENDIF
  2608.  
  2609.       INTERFACE TO FUNCTION ArrangeIconicWindows[PASCAL,FAR] (HW)
  2610.      INTEGER*2 ArrangeIconicWindows,HW
  2611.       END
  2612. $ENDIF ! NOMDI
  2613.  
  2614. $ENDIF ! NOUSER
  2615.  
  2616. $IF DEFINED(HELP)
  2617. C
  2618. C Help engine section.
  2619. C
  2620.       INTERFACE TO FUNCTION WinHelp[PASCAL,FAR] (HW,LS,I,J)
  2621.      INTEGER*2 WinHelp,HW,I
  2622.      CHARACTER*(*) LS [REFERENCE,FAR]
  2623.      INTEGER*4 J
  2624.       END
  2625. $ENDIF
  2626.  
  2627. $IF DEFINED(PROFILER)
  2628. C
  2629. C function declarations for profiler routines contained in Windows libraries
  2630. C
  2631.       INTERFACE TO function ProfInsChk[PASCAL,FAR] ()
  2632.          INTEGER*2 ProfInsChk
  2633.       END
  2634.       INTERFACE TO SUBROUTINE ProfSetup[PASCAL,FAR] (I,J)
  2635.          INTEGER*2 I,J
  2636.       END
  2637.       INTERFACE TO SUBROUTINE ProfSampRate[PASCAL,FAR] (I,J)
  2638.          INTEGER*2 I,J
  2639.       END
  2640.       INTERFACE TO SUBROUTINE ProfStart[PASCAL,FAR] ()
  2641.       END
  2642.       INTERFACE TO SUBROUTINE ProfStop[PASCAL,FAR] ()
  2643.       END
  2644.       INTERFACE TO SUBROUTINE ProfClear[PASCAL,FAR] ()
  2645.       END
  2646.       INTERFACE TO SUBROUTINE ProfFlush[PASCAL,FAR] ()
  2647.       END
  2648.       INTERFACE TO SUBROUTINE ProfFinish[PASCAL,FAR] ()
  2649.       END
  2650. $ENDIF ! NOPROFILER
  2651.